Na Początku napiszę ze dopiero zaczynam zabawę z bascom'em
Bawię sie z Attiny 2313. płyta testowa ZL11AVR
Potrzebuję zrobić takie coś
Jednym switchem który jest na PIND.0 chcem ustawić PORTB.0 = 1
ponowne naciśnięcie switcha ustawia PORTB.1 = 1
ponowne nacisnięcie ustawia PORTB.2 = 1
ponowne nacisniecie ustawia PORTB.3 = 1
itd aż zapełni sie cały PORTB stanem wysokim.
jeżeli zapełni się cały POTRTB wartościa 11111111 to po ponownym nacisnięciu switcha
znow najmłodszy bit PortB ma 1 reszta 0. i tak cały cykl sie powtarza.
Za każdym nacisnięciem Switcha na chwilę ( 200 ms ) na PORTD.6 = 1 ( sygnalizacja dzwiękowa Zalączenia switcha )
zaczełem kombinować i pisać, ale za mało wiem i po drugim naciśnięciu switcha nie ustawia mi się PORTB.1 = 1
moze ktoś zerknąć ?
Browarka jakiegoś postawię za pomoc
' Wlacznik Przekaznikow sterowanych z Portu B
Config Portb = Ouput 'wszystkie końcówki jako wyjścia
Portb = &B00000000 'stan spoczynkowy niski
Config Portd = &B1111110 'jedno najmlodsze jako wejscie ,reszta jako wyjscie
Portd = &B0000001 'wszedzie stan niski, oprócz najmlodszego bitu
Wej Alias Pind.0 ' nazwa zamienna, zmieniamy nazwy dla uproszczenia
Wy0 Alias Portb.0
Wy1 Alias Portb.1
Wy2 Alias Portb.2
Wy3 Alias Portb.3
Wy4 Alias Portb.4
Wy5 Alias Portb.5
Wy6 Alias Portb.6
Wy7 Alias Portb.7
Piezo Alias Portd.6 ' piezo na porcieD=6
Do
If Wej = 0 Then ' jezeli wej jest w stanie 0 to
Wy0 = 1 ' wyscie 0 jest w stanie wysokim
If Wy0 = 1 And Wej = 0 Then ' jeżeli wyjscie 0 jest w stanie wysokim i wejscie w stanie 0 to
Wy1 = 1 ' wyjscie 1 jest w stanie wysokim
If Wej = 0 Then Piezo = 1
Waitus 200
Piezo = 0
Loop
End If
End