Napisałem sobie taki prosty programik po wciśnięciu przycisku S1 program musi przeskoczyć do podprogramu X. Wszystko w porządku sie z kompilowało.W grałem program do Attiny2313 i uruchomiłem.Nie zdąrzyłem wcisnąć przycisku S1 a już program wykonał wszystkie operacje, powrócił do pętli Do Loop i powtarza się sytuacja.Przycisk S1 nie wpływa na pracę programu. Pytanko co jest źle??? Pozdro
$crystal = 4000000
'Ustawienie wejść na pinie PD0'
Config Pind.0 = Input
'Ustawienie wyjść na pinach PD4 i PD5'
Config Pind.5 = Output
Config Pind.6 = Output
'konfiguracja wyświetlacza LCD'
Config Lcd = 16 * 2
Config Debounce = 15
'Przypisanie nazw odpowiednim pinom'
S1 Alias Pind.0
D1 Alias Pind.5
D2 Alias Pind.6
Do
Set D1
Set D2
Cls
Lcd "Uzyj przycisku"
Bitwait S1 , Reset
Debounce S1 , 0 , X , Sub
Loop
End
X:
Cls
Lcd "X:"
Reset D1
Reset D2
Return
Program w Bascom AVR
-
ZbeeGin
No tak, tylko jak chcesz zwierać port do masy to musisz włączyć wewnętrzne podciąganie do Vcc lub zamontować je na zewnątrz. Najprościej zamień ten fragment na:DEDE pisze:'Ustawienie wejść na pinie PD0'
Config Pind.0 = Input
Kod: Zaznacz cały
'Ustawienie wejść na pinie PD0'
Config Pind.0 = Input
Set Pind.0Kod: Zaznacz cały
-
ZbeeGin
Spróbuj zmienić:DEDE pisze:Bitwait S1 , Reset
Debounce S1 , 0 , X , Sub
Kod: Zaznacz cały
Bitwait S1 , Reset
Debounce S1 , 0 , X , Sub
Bitwait S1, Set
Ostatnio zmieniony 28 paź 2006, 11:50 przez ZbeeGin, łącznie zmieniany 1 raz.
-
ZbeeGin
Spójrz na kod jaki napisał Luciano: http://www.mcselec.com/index2.php?optio ... ce+problem
Chyba też będziesz musiał zrezygnować z DEBOUNCE.
Chyba też będziesz musiał zrezygnować z DEBOUNCE.