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



Teraz jest 29 mar 2024, o 00:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 7 kwi 2020, o 06:33 
Offline
Nowy

Dołączył(a): 28 gru 2014
Posty: 19
Pomógł: 0

Witam
Proszę o informację normalne zachowanie
zakomentowane mam
// register_enc_event_callback( my_encoder );
// ENCODER_EVENT();
w pliku mkenkoder.h odkomentowałem
extern volatile int enco_cnt;

ustawienia mam takie
#define USE_INT_IRQ 1
#define ENC_INT -1
#define ENC_A (1<<PD2)
#define ENC_B (1<<PD3)
i impulsy z enkodera są normalnie zliczane.
Pytanie czy to normalne, czy mam szukać gdzieś błędu u siebie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2020, o 16:44 
Offline
Użytkownik

Dołączył(a): 11 sty 2015
Posty: 166
Pomógł: 24

Skoro używasz przerwań to ENCODER_EVENT() jest niepotrzebne i po jego zakomentowaniu encoder nadal jest zliczany.
register_enc_event_callback( my_encoder ) - nie jest funkcją zliczającą, tylko służy do zarejestrowania twojej funkcji która ma reagować na obrót encodera.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2020, o 18:47 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Ależ ENCODER_EVENT() jest jak najbardziej potrzebne.
To tam jest sprawdzane czy funkcja my_encoder jest
zarejestrowana i w przypadku ustawienia flagi o zajściu
zdarzenia obrócenia enkodera wywoływana.
No chyba, że obsługuje się enkoder w poolingu...

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 kwi 2020, o 19:15 
Offline
Użytkownik

Dołączył(a): 11 sty 2015
Posty: 166
Pomógł: 24

Nie wiem co gdzie masz, bo nie wiem co masz w kodzie.
Nie mam też Mirkowej biblioteki, jeżeli to jej używasz.
Natomiast Twoje rozumowanie jest chyba na odwrót.
Jeżeli używasz pollingu to ENCODER_EVENT() jest niezbędny bo tam testujesz wejścia.
Jeżeli używasz przerwań a na to wskazuje zamieszczony fragment kodu to ENCODER_EVENT() jest zbędne.
Dlatego program Ci działa, mimo tego, że uważasz, że nie powinien.

------------------------ [ Dodano po: 31 minutach ]

Sorki, nie zwróciłem uwagi, że autor poprzedniego postu, nie jest autorem wątku.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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