Przeniosłem temat. Chcę zbudować urządzenie, które będzie sterowane przez RC5, lecz nie mogę sobie z tym poradzić. Poniżej umieszczam kod:
$regfile = "m32def.dat"
$crystal = 10000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.6 , E = Portd.1 , Rs = Portd.0
Config Timer0 = Timer , Prescale = 1024
Config Pinc.3 = Input
Set Portc.3
Config Pind.5 = Input
Set Portd.5
Config Pinc.2 = Output
Config Pind.7 = Output
Set Portd.7
Config Sda = Portc.5
Config Scl = Portc.4
Const Adres_write = 174
Const Adres_read = 175
Declare Sub Odczyt_suma
Declare Sub Odczyt_szereg
Dim Kodklaw As Byte
Dim Q As Long
Dim Suma As Byte
Dim Przep As Byte
Dim Policzlcd As Long
Dim Krok As Long
Enable Interrupts
Enable Timer0
Config Keyboard = Pinc.0 , Data = Pinc.1 , Keydata = Keydata
On Timer0 Mig
Cls
Config Rc5 = Pinc.3
Getrc5(address , Command)
Address = 1
If Address = 0 Then
Command = Command And &B01111111
Gosub Druga
Else
Gosub Odczyt
End If
Loop
End
Druga:
Do
Kodklaw = Getatkbd()
If Kodklaw > 0 And Kodklaw < 127 Then
Incr Q
Suma = Kodklaw
If Q <= 900 Then
Writeeeprom Suma , Q
End If
If Q > 900 Then
I2cstart
I2cwbyte Adres_write
I2cwbyte Q
I2cwbyte Suma
I2cstop
End If
Lcd Chr(kodklaw)
Incr Policzlcd
Select Case Policzlcd
Case 16 : Locate 2 , 1
Case 32 : Locate 1 , 1
Cls
Case 48 : Locate 2 , 1 '
Case 64 : Locate 1 , 1 '
Cls '
Case 80 : Locate 2 , 1 '
Case 96 : Locate 1 , 1 '
Cls '
Case 112 : Locate 2 , 1 '
Case 128 : Locate 1 , 1 '
Cls '
Case 144 : Locate 2 , 1 '
Case 160 : Locate 1 , 1 '
Cls '
Case 176 : Locate 2 , 1 '
Case 192 : Locate 1 , 1 '
Cls '
Case 208 : Locate 2 , 1 '
Case 224 : Locate 1 , 1 '
Cls '
Case 240 : Locate 2 , 1 '
Case 256 : Locate 1 , 1 '
Cls '
Case 272 : Locate 2 , 1 '
Case 288 : Locate 1 , 1 '
Cls '
Case 304 : Locate 2 , 1 '
Case 320 : Locate 1 , 1 '
Cls '
Case 336 : Locate 2 , 1 '
Case 352 : Locate 1 , 1 '
Cls '
Case 368 : Locate 2 , 1 '
Case 384 : Locate 1 , 1 '
Cls '
Case 400 : Locate 2 , 1 '
Case 416 : Locate 1 , 1 '
Cls '
Case 432 : Locate 2 , 1 '
Case 448 : Locate 1 , 1 '
Cls '
Case 464 : Locate 2 , 1 '
Case 480 : Locate 1 , 1 '
Cls '
Case 496 : Locate 2 , 1 '
Case 512 : Locate 1 , 1 ' ' ' '
Cls '
Case 528 : Locate 2 , 1 '
Case 544 : Locate 1 , 1 '
Cls '
Case 560 : Locate 2 , 1
Case 576 : Locate 1 , 1 '
Cls '
Case 592 : Locate 2 , 1
Case 608 : Locate 1 , 1
Cls '
Case 624 : Locate 2 , 1 '
Case 640 : Locate 1 , 1 '
Cls '
Case 656 : Locate 2 , 1
Case 672 : Locate 1 , 1
Cls
Case 688 : Locate 2 , 1
Case 704 : Locate 1 , 1
Cls
Case 720 : Locate 2 , 1
Case 736 : Locate 1 , 1
Cls
Case 752 : Locate 2 , 1
Case 768 : Locate 1 , 1
Cls
Case 784 : Locate 2 , 1
Case 800 : Locate 1 , 1
Cls
Case 816 : Locate 2 , 1
Case 832 : Locate 1 , 1
Cls
Case 848 : Locate 2 , 1
Case 864 : Locate 1 , 1
Cls
Case 882 : Locate 2 , 1
Case 898 : Locate 1 , 1
Cls
Case 914 : Locate 2 , 1
Case 930 : Locate 1 , 1
Cls
Case 946 : Locate 2 , 1
Case 962 : Locate 1 , 1
End Select
If Kodklaw = 1 Then
Gosub Kasuj
End If
If Q = 962 Then
Gosub Alarm
End If
End If
Loop
End
Return[/tex]
Chodzi mi o to, że jak jest getrc5(address, command) to w tym nawiasie trzeba umieścić jakieś zmienne. Niestety sam nie dojdę o, co tu chodzi.
$regfile = "m32def.dat"
$crystal = 10000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.6 , E = Portd.1 , Rs = Portd.0
Config Timer0 = Timer , Prescale = 1024
Config Pinc.3 = Input
Set Portc.3
Config Pind.5 = Input
Set Portd.5
Config Pinc.2 = Output
Config Pind.7 = Output
Set Portd.7
Config Sda = Portc.5
Config Scl = Portc.4
Const Adres_write = 174
Const Adres_read = 175
Declare Sub Odczyt_suma
Declare Sub Odczyt_szereg
Dim Kodklaw As Byte
Dim Q As Long
Dim Suma As Byte
Dim Przep As Byte
Dim Policzlcd As Long
Dim Krok As Long
Enable Interrupts
Enable Timer0
Config Keyboard = Pinc.0 , Data = Pinc.1 , Keydata = Keydata
On Timer0 Mig
Cls
Config Rc5 = Pinc.3
Getrc5(address , Command)
Address = 1
If Address = 0 Then
Command = Command And &B01111111
Gosub Druga
Else
Gosub Odczyt
End If
Loop
End
Druga:
Do
Kodklaw = Getatkbd()
If Kodklaw > 0 And Kodklaw < 127 Then
Incr Q
Suma = Kodklaw
If Q <= 900 Then
Writeeeprom Suma , Q
End If
If Q > 900 Then
I2cstart
I2cwbyte Adres_write
I2cwbyte Q
I2cwbyte Suma
I2cstop
End If
Lcd Chr(kodklaw)
Incr Policzlcd
Select Case Policzlcd
Case 16 : Locate 2 , 1
Case 32 : Locate 1 , 1
Cls
Case 48 : Locate 2 , 1 '
Case 64 : Locate 1 , 1 '
Cls '
Case 80 : Locate 2 , 1 '
Case 96 : Locate 1 , 1 '
Cls '
Case 112 : Locate 2 , 1 '
Case 128 : Locate 1 , 1 '
Cls '
Case 144 : Locate 2 , 1 '
Case 160 : Locate 1 , 1 '
Cls '
Case 176 : Locate 2 , 1 '
Case 192 : Locate 1 , 1 '
Cls '
Case 208 : Locate 2 , 1 '
Case 224 : Locate 1 , 1 '
Cls '
Case 240 : Locate 2 , 1 '
Case 256 : Locate 1 , 1 '
Cls '
Case 272 : Locate 2 , 1 '
Case 288 : Locate 1 , 1 '
Cls '
Case 304 : Locate 2 , 1 '
Case 320 : Locate 1 , 1 '
Cls '
Case 336 : Locate 2 , 1 '
Case 352 : Locate 1 , 1 '
Cls '
Case 368 : Locate 2 , 1 '
Case 384 : Locate 1 , 1 '
Cls '
Case 400 : Locate 2 , 1 '
Case 416 : Locate 1 , 1 '
Cls '
Case 432 : Locate 2 , 1 '
Case 448 : Locate 1 , 1 '
Cls '
Case 464 : Locate 2 , 1 '
Case 480 : Locate 1 , 1 '
Cls '
Case 496 : Locate 2 , 1 '
Case 512 : Locate 1 , 1 ' ' ' '
Cls '
Case 528 : Locate 2 , 1 '
Case 544 : Locate 1 , 1 '
Cls '
Case 560 : Locate 2 , 1
Case 576 : Locate 1 , 1 '
Cls '
Case 592 : Locate 2 , 1
Case 608 : Locate 1 , 1
Cls '
Case 624 : Locate 2 , 1 '
Case 640 : Locate 1 , 1 '
Cls '
Case 656 : Locate 2 , 1
Case 672 : Locate 1 , 1
Cls
Case 688 : Locate 2 , 1
Case 704 : Locate 1 , 1
Cls
Case 720 : Locate 2 , 1
Case 736 : Locate 1 , 1
Cls
Case 752 : Locate 2 , 1
Case 768 : Locate 1 , 1
Cls
Case 784 : Locate 2 , 1
Case 800 : Locate 1 , 1
Cls
Case 816 : Locate 2 , 1
Case 832 : Locate 1 , 1
Cls
Case 848 : Locate 2 , 1
Case 864 : Locate 1 , 1
Cls
Case 882 : Locate 2 , 1
Case 898 : Locate 1 , 1
Cls
Case 914 : Locate 2 , 1
Case 930 : Locate 1 , 1
Cls
Case 946 : Locate 2 , 1
Case 962 : Locate 1 , 1
End Select
If Kodklaw = 1 Then
Gosub Kasuj
End If
If Q = 962 Then
Gosub Alarm
End If
End If
Loop
End
Return[/tex]
Chodzi mi o to, że jak jest getrc5(address, command) to w tym nawiasie trzeba umieścić jakieś zmienne. Niestety sam nie dojdę o, co tu chodzi.


