Skocz do zawartości

[AVR] zapalanie diody i gaszenie tym samym przyciskiem


irek

Pomocna odpowiedź

wgrałem do atmega 16 parę programów na zapalanie diody LED i gaszenie jednym przyciskiem (przyciśnij zaświeć przyciśnij zgaś)z forum,lecz zawsze buły jakieś problemy czy któryś z kolegów posiada sprawdzony i pewny program?

Link do komentarza
Share on other sites

$regfile = "attiny2313.dat"                                 'model proca
   $crystal = 1000000                                          'taktowanie

   Config Portb = Input                                        'port b  jako wejścia
           Portb = &B11111111                                  'stan spoczynkowy-0
   Config Portd = Output
           Portd = &B10111111                                  'końcówki PD0 do PD3 jako wyjścia, a od PD4 do PD6 końcówki jako wejścia


   Do

    waitms 30
    If Pinb.1 = 0 And Portd.0 = 0 Then                               'jeżeli przycisk 1 są wciśnięte
      Toggle Portd.0                                                          'zmień stan wyprowadzenia
    End If
   While Pinb.1 = 0
   Wend
    waitms 30
    If Pinb.1 = 0 And Portd.0 = 1 Then                                   'jeżeli przycisk 1 są wciśnięte
      Portd.0 = 0                                                                    'zmień stan wyprowadzenia
    End If
   While Pinb.1 = 0
   Wend

   Loop
                                                         'koniec pętli

   End

[ Dodano: 19 Sty 10 10:11 ]

lopez321, $regfile = "attiny2313.dat" 'model proca

$crystal = 1000000 'taktowanie

Config Portb = Input 'port b jako wejścia

Portb = &B11111111 'stan spoczynkowy-0

Config Portd = Output

Portd = &B10111111 'końcówki PD0 do PD3 jako wyjścia, a od PD4 do PD6 końcówki jako wejścia

Do

waitms 30

If Pinb.1 = 0 And Portd.0 = 0 Then 'jeżeli przycisk 1 są wciśnięte

Toggle Portd.0 'zmień stan wyprowadzenia

End If

While Pinb.1 = 0

Wend

waitms 30

If Pinb.1 = 0 And Portd.0 = 1 Then 'jeżeli przycisk 1 są wciśnięte

Portd.0 = 0 'zmień stan wyprowadzenia

End If

While Pinb.1 = 0

Wend

Loop

'koniec pętli

End

Link do komentarza
Share on other sites

attiny2313 nie pasuje - ty masz m16, nie rozumiem tej linijki:

If Pinb.1 = 0 And Portd.0 = 0

Wystarczy samo

if pinb.1 = 0 then
toggle Portd.0
endif

Ewentualnie jeszcze można bawić się z debounce.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Czy tak miało to wyglądać?

$regfile = "m16def.dat"

$crystal = 16000000

Config Portb = Input

Portb = &B11111111

Config Portd = Output

Portd = &B11111111

Do

If Pinb.0 = 0 Then

Toggle Portd.0

End If

Loop

LED nie zawsze działa na przycisk.

Link do komentarza
Share on other sites

Config Portd = Output
Portd = &B10111111 'końcówki PD0 do PD3 jako wyjścia, a od PD4 do PD6 końcówki jako wejścia 

Tu masz wszystkie jako wyjścia ustawione więc taki mały błąd w komentarzu;p

I jak bym jeszcze ustawił wszystkie porty na 0. Ale to już zależy jak masz podłączone przełączniki. Najlepiej jak masz daj schemat ;]

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.