Zauważyłem, że jak w programie była obsługa jednego przycisku to wszystko było ok, i buzzer piszczał cały czas (chyba, albo mi się z diodą myli) albo wcale. Dopiero przy trzech przyciskach coś jest nie halo i często nie reagują przyciski, trzeba kilka razy naciskać aby zareagował. Czym to jest spowodowane? Chciałbym to zrozumieć, zanim zabiorę się za trudniejsze rzeczy.
-- dodano 30 cze 2012, o 11:28 --mirekk36 napisał(a):
Nie no pewnie, że buzzer musi brzęczeć gdy mu podasz jedynkę - tak jak dioda
napisz który konkretnie fragment programu załącza ci tą jedynkę niby - a nie działa
if(klawisz_wcisniety(KEY3_PIN)) BUZ_ON;
toggle też źle działa.
wciskam klawisz KEY3 i buzzer daje krótkie piknięcie tylko, powinien piszczeć cały czas...
-- dodano 30 cze 2012, o 11:33 --Cytuj:
Spróbuj sobie dużo krócej kliknąć palcem w ten klawisz który ma zmienić jego stan - wtedy okaże się że buzzer zmieni swój stan i będzie ładnie raz brzęczał a raz cicho
Właśnie ten klawisz powoduje, że z każdym razem buzzer krótko pika. Tak samo, jak klawisz włączający buzzer.
-- dodano 30 cze 2012, o 11:35 --Cytuj:
jeśli zaś palca trzymasz za długo na przycisku to buzzer albo tylko piśnie krótko albo jeśli będziesz go cały czas trzymał ten klawisz to buzzer będzie cyklicznie piszczał - no właśnie i co ile czasu ? - co 80ms tyle ile masz ustawione niby tego _delay'a do eliminacji drgań styków
No tak, jak przytrzymam to cyklicznie piszczy. Błąd w moim rozumowaniu jest taki, że wg programu jak nacisnę odpowiedni przycisk, to buzzer powinien stale piszczeć albo zmienić swój stan a jest, jak opisałem. :/
-- dodano 30 cze 2012, o 11:40 --Cytuj:
Spróbuj sobie dużo krócej kliknąć palcem w ten klawisz który ma zmienić jego stan - wtedy okaże się że buzzer zmieni swój stan i będzie ładnie raz brzęczał a raz cicho
Zgadza się, ale nadal nie rozumiem, dlaczego tak się dzieje.
-- dodano 30 cze 2012, o 11:43 --Ehh to co wyżej napisałem (z tym krótkim naciśnięciem) najpierw działało a teraz nie... Magia...
-- dodano 30 cze 2012, o 12:02 --Tak, potwierdzam, z jednym przyciskiem to działa jak należy, dopiero przy 2+ przyciskach na raz w programie coś się krzaczy. Ktoś mi to wytłumaczy?
-- dodano 30 cze 2012, o 12:05 --Jak zakomentowałem if(klawisz_wcisniety(KEY2_PIN)) BUZ_OFF; to działa ok
-- dodano 30 cze 2012, o 12:11 --Jak zakomentuję 34 linię to działa ok, dlaczego?