du hast mich falsch verstanden mit dem Editieren
Du sollst nur Editieren wenn du den letzen Beitrag selber geschrieben hast und nicht wenn ich z.B den letzen Beitrag geschrieben habe.
du hast mich falsch verstanden mit dem Editieren
Du sollst nur Editieren wenn du den letzen Beitrag selber geschrieben hast und nicht wenn ich z.B den letzen Beitrag geschrieben habe.
habe einen code im netz gefunden und an den mega8 angepasst
sowie an die ports 3- 5 in deinem fall.
Code:'code gefunden bei http://www.amhamberg.de 'an mega8 portb.3 bis .5 angepasst mit 8mhz 'internen takt,geändert am 28.01.2007 $regfile = "m8def.dat" $crystal = 8000000 Ddrb = &B11111111 Portb = &B00000000 Dim A As Integer Dim B As Integer Dim C As Integer Dim X As Integer Dim Y As Integer Dim Onoff1 As Bit Dim Onoff2 As Bit Declare Sub Dimmen(byval Led1 As Integer , Byval Led2 As Integer) Do Do A = Rnd(3) + 3 B = Rnd(3) + 3 If A <> B Then Exit Do Loop If Portb.a = 1 And Portb.b = 1 Then C = 3 While C = A Or C = B Incr C Wend If Portb.c = 1 Then Call Dimmen(a , B) Else Call Dimmen(a , C) End If Else Call Dimmen(a , B) End If Loop End Sub Dimmen(byval Led1 As Integer , Byval Led2 As Integer) If Portb.led1 = 0 Then Onoff1 = 1 Else Onoff1 = 0 End If If Portb.led2 = 0 Then Onoff2 = 1 Else Onoff2 = 0 End If For X = 0 To 500 For Y = 1 To 500 If X > Y Then Portb.led1 = Onoff1 Portb.led2 = Onoff2 Else Portb.led1 = Not Onoff1 Portb.led2 = Not Onoff2 End If Next Next Portb.led1 = Onoff1 Portb.led2 = Onoff2 Waitms 500 End Sub
also bei mir funktioniert der code nicht. wie siehts bei dir aus?
EDIT: es funktioniert doch, hab es nochmal von der hp runtergeladen.
Das kommt dem Ergebnis doch schon relativ nahe, blos leider verstehe ich in dem Programm rein gar nichts![]()
Irgentwie sehe ich da nich einen Timer oder ähnliches.
Jetzt sind blos immer 2 LEDs an und eine Dimmt sich aus (Abwechselnd), was ja irgentwie blöde ist, da dann ja viel zu oft alle 3 aufeinmal an sind (RGB = weiss) und man nie die einzelfarben Rot, Grün und Blau hat.
als bei mir läuft der code so wie ich ihn einstellte.habe es mit 16 mhz sowie mit interne 8 und 4 mhz laufen lassen.
hast schon recht aber war ja ein vorschlag,mit dem weiss ist das halt so in dem fall.timer hat er nicht benutzt läuft alles software-mässig ab.
bin auch noch am probieren eine art regenbogenverlauf zuerstellen.
also in der art vor und zurück.aber in Bascom das zu prgrammieren wird
aufwendig.in assembler würde das besser und einfacher laufen,kann aber
kein assembler und programmiere mit Bascom erst seit ein paar wochen.
wie du meinem autor-namen entnehmen kannst mache ich bei schönem wetter andere sachen.naja man kann nicht alles können.aber ich bleibe am ball.wenn du etwas gefunden hast kannst du es mir ja per e-mail schicken oder hier einstellen.
ja mache ich, ich bin schon die ganze zeit am probieren.
ich habs geschafft!!!! =D>
Ist zwar mehr als kompliziert gecodet, aber immerhin erfüllt es voll und ganz seinen zweck.
Code:$regfile = "m8def.dat" $crystal = 8000000 'Interner 8mhz Quarz '#####Ausgänge##### Config Portb = Output Gruen Alias Portb.2 'Grüne LED an Portb.5 Rot Alias Portb.1 'Rote LED an Portb.4 Blau Alias Portb.0 'Blaue LED an Portb.3 '#####Deklarationen##### Dim Helligkeit As Byte 'Helligkkeitswert '###Hilfsbits und -bytes### Dim Ro1 As Bit Dim Bl1 As Bit Dim Gr1 As Bit Dim Reverse As Bit Dim Zler1 As Byte Dim Zler2 As Byte Dim Halb As Byte Dim Ganz As Byte '#####Timer##### Enable Interrupts Enable Timer0 On Timer0 Int_timer0 Config Timer0 = Timer , Prescale = 256 Enable Timer1 On Timer1 Int_timer1 Config Timer1 = Timer , Prescale = 8 Const Timervorgabe = 32203 Helligkeit = 5 '#####Hauptschleife##### Do Loop '#####Hauptschleife Ende##### '#####Timer0 isr##### Int_timer0: If Ro1 = 1 Then Toggle Rot If Rot = 1 Then Timer0 = 256 - Helligkeit Else Timer0 = Helligkeit End If End If If Bl1 = 1 Then Toggle Blau If Blau = 1 Then Timer0 = 256 - Helligkeit Else Timer0 = Helligkeit End If End If If Gr1 = 1 Then Toggle Gruen If Gruen = 1 Then Timer0 = 256 - Helligkeit Else Timer0 = Helligkeit End If End If Return '#####Timer1 isr##### Int_timer1: Timer1 = Timervorgabe 'Timervorgabewert von RNAVR berechnet If Helligkeit = 250 Then Set Reverse Incr Zler1 End If If Helligkeit = 1 Then Reset Reverse Incr Zler2 End If '####Moodlight#### '###rot### If Zler2 = 0 Then Set Ro1 If Zler1 = 1 Then Reset Ro1 If Zler1 = 2 Then Set Ro1 If Zler2 = 3 Then Set Ro1 If Zler1 = 4 Then Reset Ro1 If Zler2 = 2 Then Reset Ro1 '###Gruen### If Zler2 = 0 Then Set Gr1 If Zler1 = 2 Then Reset Gr1 If Zler1 = 3 Then Set Gr1 If Zler2 = 3 Then Reset Gr1 If Zler2 = 4 Then Set Gr1 '###Blau### If Zler2 = 1 Then Reset Bl1 If Zler2 = 0 Then Set Bl1 If Zler2 = 2 Then Set Bl1 If Zler1 = 3 Then Reset Bl1 If Zler1 = 4 Then Set Bl1 '////////////////////////////////////////////// If Zler1 > 4 Then Zler1 = 0 If Zler2 > 4 Then Zler2 = 0 If Reverse = 1 Then Decr Helligkeit If Reverse = 0 Then Incr Helligkeit Return End
Lesezeichen