Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 19 kwi 2024, o 01:43


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 3 sie 2017, o 20:43 
Offline
Nowy

Dołączył(a): 16 lip 2017
Posty: 4
Pomógł: 0

Witajcie!

Całkiem niedawno ogarnąłem sobie książkę Bluebook i zaczynam programować AVRy. Zacząłem już wymyślać własne projekty, w między czasie czytając dalej książkę. Do pewnego czasu wszystko działało w porządku, ale zatrzymałem się na obsłudze klawiszy we Wstępie do systemów czasu rzeczywistego. Mianowicie chciałbym zrobić tak aby klawisze włączające i wyłączające zwykłą diodę LED działały płynnie w sensie Klik i świeci - Klik i gaśnie. Obecnie sprawa ma się tak, że muszę przytrzymać przycisk ok 1,5 sekundy i świeci - drugi przycisk 1,5 sekundy i gaśnie. Jeżeli zaklikam jakiś krócej, szybciej wtedy już działa jeszcze gorzej.

Czy to tak "oryginalnie" ma wyglądać? Wewnętrzny oscylator ustawiłem na 8MHz, JTAG wyłączony. Czy może jednak jako początkujący coś pominąłem?

Bardzo proszę o radę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2017, o 20:59 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

rafalb napisał(a):
Czy to tak "oryginalnie" ma wyglądać?

Nie.
Argumentami funkcji SuperDebounce są funkcje uruchamiane albo przy wciśnięciu albo przy trzymaniu. Ta pierwsza wykonuje się od razu, a druga cyklicznie. Zobacz czy wstawiłeś odpowiednią funkcję. Jeśli 2 sposób wywołania nie jest używany wpisz NULL.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2017, o 06:59 
Offline
Nowy

Dołączył(a): 16 lip 2017
Posty: 4
Pomógł: 0

Niestety to też nie daje odpowiedniego działania. Wpisywałem już także taką samą funkcję zamiast NULL - identycznie.
Uprościłem kod do możliwego minimum, aby mogły działać klawisze z diodą. Obecnie kod wygląda jak poniżej.
Zamieszczam również klip na którym widać, że początkowo działa to nawet ok, później natomiast nie zawsze jest reakcja na wciśnięte klawisze.
Zauważyłem że gdy dany klawisz nie reaguje, należy wcisnąć jeszcze raz drugi po czym temu pierwszemu wraca już życie.

Ponieważ używam 8MHz, dla OCR2 ustawiłem 77.



Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO