Skocz do zawartości

Attiny1606 - przerwanie załącza się bez względu na stan przycisku.


JammyCrazy

Pomocna odpowiedź

Chciałbym wiedzieć, gdzie ten błąd jest. Jutro będę miał czas to przylutuję kable i upewnię się jeszcze z dwa, trzy razy. Zostały mi ostatnie dni przed końcem roku i mam dosyć mało czasu wolnego. Do tego teorie na prawko....

Link do komentarza
Share on other sites

trudno powiedzieć. Na pewno użycie atomic w przerwaniu jest błedem (atomic stosuje się po to aby przerwanie nie wlazło tam gdzie nie trzeba, w większości mikrokontrolerów funkcja isr jest z założenia atomowa). No ale to podobno usunąłeś...

Niestety - jeśli nie wywołuje się przerwanie przy którymś zboczu to na 99.999% jest to błąd w programie.

Link do komentarza
Share on other sites

A skąd mielismy wiedzieć? Ja myślałem że program jest ok, tylko trzeba mu dodać jakiś filtr (czy to elektroniczny, czy programowy).

BTW te moje dywagacje o debouncingu i parasolu przydadzą się jak to już ruszy 🙂

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

Gdybyś odpalił generator z linku, już dawno byłoby po problemie. Że nie mam nic ciekawszego do roboty to spróbowałem konfiguracji przerwania i wygląda to całkiem inaczej niż w twoim kodzie. Trochę lipa, bo chcemy Ci pomóc a ty to dosłownie zlewasz. 

Link do komentarza
Share on other sites

Będę miał wolny czas, to sprawdzę dokładniej ten generator i co z czym się je. Jak na razie to tylko powierzchownie to sprawdziłem. Teraz kiedy jestem niemal pewny, że to wina programu, to mogę odpuścić rozważania na temat filtru i bardziej przysiąść do pisania kodu. 

7 minut temu, ethanak napisał:

Zasada CPCD.

 

?

Link do komentarza
Share on other sites

(edytowany)

Myślałem że konfiguracja pinu powinna wyglądać następująco, tak też zrobiłem:

1) Ustawienie pinu na wejście (rejestr PORTA_DIR)

2) Włączenie wybranego przerwania dla danego pinu (rejestr PORTA_PIN1_CTRL)

3) Napisanie funkcji dla tego przerwania (makro ISR)

4) Globalne włączenie przerwań (funkcja sei() )

Edytowano przez JammyCrazy
Link do komentarza
Share on other sites

Cytat

Z góry założyłem, że flaga jest czyszczona automatycznie... 💀

Założenia dobre ale zapewne do innego µC.

W sumie ciekawy temat, nie mogłem się oprzeć i porównałem noty katalogowe i rzeczywiście to ATtiny ma zmiany względem starszych braci (starsze µC automatycznie czyściły flagę, jeśli takowa była, podczas skoku do funkcji obsługującej przerwanie), generalnie nowa rodzinka bazująca na rdzeniu xmega obsługuje przerwania nieco inaczej. Sam jestem w trakcie odświeżania wiadomości i w sumie taki wątek jest na wagę złota, dosyć istotna różnica między starą i nową rodziną. 🙂

Edytowano przez sebas86
Link do komentarza
Share on other sites

28 minut temu, sebas86 napisał:

Założenia dobre ale zapewne do innego µC.

Tak, przy nauce obsługi przerwań korzystałem z książki Filipa Sali. Przyjąłem opisany tam schemat:

- napisanie funkcji przerwania

- włączenie danego przerwania

- globalne włączenie przerwań (  sei( )  )

Nic nie było wspomniane o czyszczeniu flag - i prawidłowo. Książka ta jest dla układów typu 328P, czyli tych starszych. W każdym razie cieszę się, że wątek się spodobał. 😊

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.