Josch
24.01.2005, 19:04
Hallo,
also ich probiere schon die ganze Zeit an diesem Programm rum:
Es soll im Endeffekt dann ein LED Controller werden, mit Ausgang an PortA und PortC. Mein Problem ist, dass wenn ich den getrc5 Befehl in die Interruptroutine reinpacke, er in dem Interrupt hängenbleibt. Wenn ich in der Hauptschleife den RC5 Code empfange, alles tadellos funktioniert, aber sobald es per Int seinen soll net mehr.
'LED Controller
'--------------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 16000000
Mcucsr.4 = 1
Mcucsr.4 = 1
Config Porta = 255
Config Portc = 255
Config Portd = 0&11111111
Config Portb = 0&00011001
Config Rc5 = Pinb.2
Config Int2 = Falling
On Int2 Interrupt
Enable Int2
Config Lcdmode = Port
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , Rs = Portb.0 , E = Portb.3
Config Lcd = 16 * 2
Initlcd
Dim Address As Byte , Command As Byte
Dim Onoff As Bit
Dim Rc As Bit
Porta = 255 'LEDs an
Portc = 255
Cls
Cursor Off Noblink
Lcd " LED Controller "
Lowerline
Lcd " Testversion"
Enable Interrupts
Mainloop:
Lowerline
Lcd "Warte auf RC5.."
Do
If Address < 255 Then
Lowerline
Lcd ; "Adr: " ; Address ; " Cmd: " ; Command ; " "
If Address = 8 Then
Select Case Command
Case 1 : Toggle Porta.0
Case 2 : Toggle Porta.1
Case 3 : Toggle Porta.2
Case 4 : Toggle Porta.3
Case 5 : Toggle Porta.4
Case 6 : Toggle Porta.5
Case 7 : Toggle Porta.6
Case 8 : Toggle Porta.7
End Select
End If
End If
Loop
Interrupt:
Getrc5(address , Command)
Command = Command And &B01111111
Return
Ich hoffe ihr könnt mir helfen, Danke schon mal im vorraus.
also ich probiere schon die ganze Zeit an diesem Programm rum:
Es soll im Endeffekt dann ein LED Controller werden, mit Ausgang an PortA und PortC. Mein Problem ist, dass wenn ich den getrc5 Befehl in die Interruptroutine reinpacke, er in dem Interrupt hängenbleibt. Wenn ich in der Hauptschleife den RC5 Code empfange, alles tadellos funktioniert, aber sobald es per Int seinen soll net mehr.
'LED Controller
'--------------------------------------------------------------
$regfile = "m16def.dat"
$crystal = 16000000
Mcucsr.4 = 1
Mcucsr.4 = 1
Config Porta = 255
Config Portc = 255
Config Portd = 0&11111111
Config Portb = 0&00011001
Config Rc5 = Pinb.2
Config Int2 = Falling
On Int2 Interrupt
Enable Int2
Config Lcdmode = Port
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , Rs = Portb.0 , E = Portb.3
Config Lcd = 16 * 2
Initlcd
Dim Address As Byte , Command As Byte
Dim Onoff As Bit
Dim Rc As Bit
Porta = 255 'LEDs an
Portc = 255
Cls
Cursor Off Noblink
Lcd " LED Controller "
Lowerline
Lcd " Testversion"
Enable Interrupts
Mainloop:
Lowerline
Lcd "Warte auf RC5.."
Do
If Address < 255 Then
Lowerline
Lcd ; "Adr: " ; Address ; " Cmd: " ; Command ; " "
If Address = 8 Then
Select Case Command
Case 1 : Toggle Porta.0
Case 2 : Toggle Porta.1
Case 3 : Toggle Porta.2
Case 4 : Toggle Porta.3
Case 5 : Toggle Porta.4
Case 6 : Toggle Porta.5
Case 7 : Toggle Porta.6
Case 8 : Toggle Porta.7
End Select
End If
End If
Loop
Interrupt:
Getrc5(address , Command)
Command = Command And &B01111111
Return
Ich hoffe ihr könnt mir helfen, Danke schon mal im vorraus.