elektor18 napisał(a):
Witam
Nie bardzo zauważysz mignięcie bo po pierwsze czas zmiany stanu na pinie z diodą (czas mignięcia) jest tak szybki że dioda nie zdąży zaświecić. Dwa to trzeba dać rezystor zabezpieczający bo może dojść do uszkodzenia uC.
Moja rada jest taka (CHOĆ W PRZERWANIU NIE WOLNO/NIE ZALECA SIĘ TEGO ROBIĆ ze względu na "zabieranie" czasu), żeby sprawdzić czy wszystko jest ok to daj np.
Kod:
_delay_ms(300);
w obsłudze przerwania. Wtedy miganie będzie zauważalne.
Ale ja nie chcę żeby dioda migała po wciśnięciu klawisza i wywołaniu przerwania a żeby gdy zostanie on wciśnięty to żeby został zmieniony stan na pinie z diodą czyli żeby w dalszej części jak to będzie działać żebym mógł zamiast sterować diodą mógł sterować poprzez przekaźnik załączaniem jakiegoś urządzenia po otrzymaniu sygnału na PB1.
Piotrek_P napisał(a):
Spróbuj sobie wyobrazić, ile razy może się wykonać procedura obsługi przerwania w Twoim programie, zanim na przycisku, a tym samym na pinie PB1 będzie stan ustalony 0 (GND). Druga sprawa, brak rezystora ograniczającego prąd diody LED może skutkować uszkodzeniem procka.
Pewnie dużo razy.
Poprawiłem kod obsługi przerwania na:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
żeby nie zgłaszało kolejnych przerwań od int0 gdy jest wykonywane już przerwanie. Działa trochę lepiej jednak tylko trochę.
@elektor18:
@Piotrek_P:
Rezystor 330 Ohm jest chyba wystarczający, prawda? Czy powinienem zastosować większy?