Witam!
Proszę o pomoc w uzupełnieniu programu w bascom.
Napisałem programik (korzystając z dostępnych listingów w sieci).
Który pobiera dane z pilota wyświetla je na LCD, i ustawia odpowiednio porty, które zapalają ledy. Jedna z komend mówi żeby przesuwać bity, w lewo, a inna w prawo.. Nawet wszystko działa.
Teraz chciałbym iść dalej, i zmusić program do tego żeby po odłączeniu, i ponownym podaniu zasilania startował z takimi ustawieniami, jak przed odłączeniem zasilania.
Czyli np: ustawiam na początku stan portu 123, daję rotację w prawo.
Program w tym momencie to zapamiętuje, i od ponownego załączenia zaczyna z takimi właśnie ustawieniami.
Kompletnie nie wiem jak do tego podejść, więc zwracam się z prośbą o pomoc
Proszę o pomoc w uzupełnieniu programu w bascom.
Napisałem programik (korzystając z dostępnych listingów w sieci).
Który pobiera dane z pilota wyświetla je na LCD, i ustawia odpowiednio porty, które zapalają ledy. Jedna z komend mówi żeby przesuwać bity, w lewo, a inna w prawo.. Nawet wszystko działa.
Teraz chciałbym iść dalej, i zmusić program do tego żeby po odłączeniu, i ponownym podaniu zasilania startował z takimi ustawieniami, jak przed odłączeniem zasilania.
Czyli np: ustawiam na początku stan portu 123, daję rotację w prawo.
Program w tym momencie to zapamiętuje, i od ponownego załączenia zaczyna z takimi właśnie ustawieniami.
Kompletnie nie wiem jak do tego podejść, więc zwracam się z prośbą o pomoc
Cytat:
$crystal = 8000000
$regfile = "Attiny2313.dat"
'$sim
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.6 , Rs = Portd.5
Config Lcd = 16 * 2
Cursor Off
Config Int1 = Low Level
Config Rc5 = Pind.3
Config Portb = Output
Dim Address As Byte
Dim Address1 As Byte
Dim Command As Byte
Dim Command1 As Byte
Dim S1 As Byte
Dim V As Integer
Declare Sub Mrygl
Declare Sub Mrygr
Enable Interrupts
Enable Int1
On Int1 Pobr_rc5
Address1 = 255
Command1 = 255
Cls
Do
S1 = Pinb
Upperline
Lcd "Com:" ; Command1 ; " SP:" ; S1 ; " "
Lowerline
Lcd "Adr:" ; Address1 ; " " ' Komendy z pilota naciśnięcie 1 daję rozkaz 1, powtórne naciśnięcie 1 daje rozkaz 129
If Command1 = 1 Then
Set Portb.0
Elseif Command1 = 129 Then
Reset Portb.0
Elseif Command1 = 2 Then
Set Portb.1
Elseif Command1 = 130 Then
Reset Portb.1
Elseif Command1 = 3 Then
Set Portb.2
Elseif Command1 = 131 Then
Reset Portb.2
Elseif Command1 = 4 Then
Set Portb.3
Elseif Command1 = 132 Then
Reset Portb.3
Elseif Command1 = 86 Then 'Po tej komędzie ma zacząć rotować w prawo
Gosub Mrygr
Elseif Command1 = 85 Then
Gosub Mrygl
End If
Enable Int1
Loop
End
Pobr_rc5:
Disable Int1
Enable Interrupts
Getrc5(address , Command)
If Address < 255 Then
Address1 = Address
Command1 = Command
End If
Return
Sub Mrygr
Cls
S1 = Pinb
Do
Locate 1 , 1
Upperline
Lcd "Com:" ; Command1 ; "SP:" ; S1
Lowerline
Lcd "Adr:" ; Address1 ; " "
Portb = S1
Rotate S1 , Right
Waitms 200
Enable Int1
If Command1 = 214 Then
Return
End If
Loop
End Sub
Sub Mrygl
Cls
S1 = Pinb
Do
Locate 1 , 1
Upperline
Lcd "Com:" ; Command1 ; "SP:" ; S1
Lowerline
Lcd "Adr: " ; Address1 ; " "
Portb = S1
Rotate S1 , Left
Waitms 200
Enable Int1
If Command1 = 213 Then
Return
End If
Loop
End Sub