hmm, aber ich benutze ja gar keine timer, sondern nur nen stinknormalen externen interrupt, oder geht dass vllt net, weil er dann ne falsche rücksprungaddresse hat?
oder funzt des net mit int2
hmm, ich habs glaubich schon mal per interrupt gesehn, ich such dann mal wo...
edit:
also jetzt funzts:
allerdings muss ich auf den zweiten gesendeten code warten, da er sonst den ersten nicht 100%ig erkenntCode:'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 Porta = 255 'LEDs an Portc = 255 'Cls 'Cursor Off Noblink 'Lcd " LED Controller " 'Lowerline 'Lcd " Testversion" Enable Interrupts Mainloop2: 'Lowerline 'Lcd "Warte auf RC5.." Do Loop Interrupt: Disable Int2 Waitms 100 'auf zweiten gesendeten Code warten (Code wird alle 113ms wiederholt) Enable Interrupts Getrc5(address , Command) Command = Command And &B01111111 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 Case 9 : Toggle Portc.7 Case 49 : Toggle Portc.6 Case 0 : Toggle Portc.5 Case 41 : Toggle Portc.4 Case 35 : Toggle Portc.3 Case 15 : Toggle Portc.2 Case 63 : Toggle Portc.1 Case 26 : Toggle Portc.0 Case 12 : If Onoff = 0 Then Portc = 255 Porta = 255 Onoff = 1 Elseif Onoff = 1 Then Portc = 0 Porta = 0 Onoff = 0 End If End Select End If End If Enable Int2 Return







Zitieren

Lesezeichen