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



Teraz jest 31 sty 2025, o 21:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 22 sty 2020, o 13:36 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

Hej Jako że w standardowej bibliotece MK_Encoder są wykorzystane m in przerwania INT1 i INT0 a w Atmedze 128 do portów tych przerwań są przypisane SCL i SDA TWI, zmieniłem w procedurze inicjalizacji enkodera na INT2 i INT3 w ten sposób:

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


Oczywiście zmieniłem też wektor przerwania na ISR (INT2_vect) i ISR (INT3_vect).

Nie widzę już w bibliotece żadnych miejsc gdzie mógłbym wprowadzić związane z tą przeróbką zmiany.
Enkoder zupełnie nie działa.

Czy ktoś spotkał się już z podobnym problemem?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2020, o 13:37 
Offline
Moderator
Avatar użytkownika

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

To bierzemy w łapki DEBUGER na jednej diodzie LED



i sprawdzamy przynajmniej podstawy - czy chociażby działają ci przerwania itp ... na prawdę no to są MEGA PODSTAWOWE działania, żeby próbować sobie samemu na początku pomóc - a gdy i to zawiedzie to przynajmniej wtedy na forum udaje się zadać o wiele bardziej precyzyjne pytanie

_________________
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: 22 sty 2020, o 14:23 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

Zauważyłem, że za każdym razem przy pokręceniu encoderem przerwanie jest wykonywane. Wiem więc, że przerwania działają.
Tym samym funkcja encoder_proc(); jest wywoływana za każdym "cyknięciem" enkodera.
Kiedy natomiast na wyświetlaczu LCD wyświetlę zmienną enco_cnt zmienia się ona tylko przy pierwszym wywołaniu funkcji czyli zmienia ona wartość z zera na 1 lub -1 w zależności od kierunku pokręcenia a następne przeskoki enkodera nie są zliczane. Tak samo zachowuje się zmienna enko_dir.
Program składa się tylko z oryginalnej biblioteki Enkodera z w/w przeróbkami i wyświetlacza LCD.
Obsługa typu Pooling działa, jednak chcę korzystać z przerwań.
Funkcja encoder_proc nie została zmieniana, wydaje mi się prosta i nie ma w niej nic co mogłoby zakłócać zliczanie więc dalej nie mam pomysłu na diagnozę.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sty 2020, o 14:34 
Offline
Moderator
Avatar użytkownika

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

A to:

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


wg ciebie to konfiguracja na zbocze opadające i narastające w m128 ?

_________________
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: 22 sty 2020, o 14:51 
Offline
Użytkownik

Dołączył(a): 01 sty 2013
Posty: 169
Pomógł: 0

Ech. nie wiem już gdzie to wyczytałem, ale do końca dałbym się pokroić że tak miało być.

Oczywiście o to chodziło - wszystko śmiga.

Dziękuję i przepraszam za zamieszanie.



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