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



Teraz jest 12 kwi 2026, o 03:20


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 27 lut 2014, o 20:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 lut 2014
Posty: 101
Pomógł: 4

Witam chciałbym zapytać o poprawną obsługę przycisków oraz definicje makr.
Troszkę podpatrzałem z BB (str. 179) ,tu mam pytanie Mirek stosuje tam tylko jedną pętlę While(1) ,która
spełniona jest tylko po naciśnięciu przycisku.
Czy nie lepiej było dać jedną nieskończoną pętlę While(1) ,a w niej drugą ,która normalnie jest pomijana gdy nie naciskamy
przycisku. Nie wiem pytam ,bo dopiero sie uczę. Bez nieskończonej pętli ,pozostawiamy przecież procek samemu sobie ,też gdzieś była wzmianka w BB.

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



Staram się też zrozumieć działanie Makr ,czy będą poprawne poniżej? :


#define START_Timer0 TCCR0B |= (1<<CS02) ,makro starujące Timer0
#define STOP_TIMER0 TCCR0B &= ~(1<<CS02) ,makro zatrzymujące Timer0


rozumiem ,że #define to taki "Bascomowy" alias.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2014, o 13:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sty 2013
Posty: 272
Pomógł: 3

Przecież sam sobie blokujesz program w ten sposób, dioda pewnie nie miga? Zobacz, procesor wchodzi w jedną pętlę, gdzie jest sprawdzenie warunku a następnie wchodzi w kolejną, nieskończoną, to nie może się udać.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2014, o 14:01 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27453
Lokalizacja: Szczecin
Pomógł: 1045

mac34 napisał(a):
Troszkę podpatrzałem z BB (str. 179) ,tu mam pytanie Mirek stosuje tam tylko jedną pętlę While(1)


No to tak jest - gdy się zatrzymujemy w czytaniu książki ... to co pokazuję w tym rozdziale to ABSOLUTNY i tylko dydaktyczny przykład - po to żeby ktoś, kto totalnie pierwszy raz styka się z takimi zagadnieniami - zobaczył w ogóle na czym polega obsługa przycisku - a nie - że jest to zalecana przeze mnie metoda w książce. Widzisz nie doczytałeś chociaż raz do końca książki i stąd takie błędne wnioski wyciągasz ...

Tymczasem masz w książce w dalszych rozdziałach opisane to już tak jak się należy stosować - jakiś tam jeden z wielu oczywiście przykładów - funkcja SuperDebounce() .... pewnie nie zaglądałeś hmmm ?

ale nawet jeśli tam nie zaglądałeś albo na obecną chwilę wydaje się to zbyt trudne to czemu nie zaglądasz na mojego bloga ? :(

zobacz pan tutaj

http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html

jak może wyglądać super prosta ale KOMPLETNIE nie blokująca metoda obsługi klawiszy

i idź dalej przynajmniej tą drogą - a nie zatrzymuj się na tej stronie książki i nie stosuj tysięcy nieskończonych pętli - będzie lepiej - zobaczysz ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2014, o 18:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 lut 2014
Posty: 101
Pomógł: 4

Ok teraz już powoli rozumiem ,mój błąd ,przedobrzyłem :)

Dziękuję za podpowiedź ,bo już powoli się zniechęcałem przyznam.

Jeśli to nie problem to można jeszcze prosić o wyjaśnienie ,dlaczego nie działa linia
if(!(PIND0 & key_S1_down)){

,ale po poprawieniu na
if(!(PIND & key_S1_down)){

działa ,znowu coś przedobrzam ? ,z diodą LED nie miałem tylu problemów.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 lut 2014, o 19:24 
Offline
Nowy

Dołączył(a): 23 lut 2014
Posty: 20
Lokalizacja: Szczecinek
Pomógł: 3

Ponieważ niema takiego rejestru PIND0, tylko jest PIND - rejestr wejściowy.



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: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 11 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO