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