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



Teraz jest 9 sty 2025, o 04:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 14 sty 2015, o 13:51 
Offline
Nowy

Dołączył(a): 19 wrz 2013
Posty: 20
Pomógł: 0

Dzień dobry.
Próbuję zaprogramować ATtiny167 i muszę wykorzystać przerwanie PCINT. W wersji podstawowej chciałbym żeby przy obsłudze przerwania po prostu zmieniało stan portu. Reszta programu działa poprawnie (kod się kompiluje). Przechodzi przez inicjalizację przerwań, inne przerwania (od timera) są dobrze obsługiwane ale PCINT nie działa. Wejście przerwania jest na pinie PB5 . Sygnał podawany na ten pin pochodzi z zewnętrznego timera wysyłającego co kilka sekund impuls (stan wysoki) o czasie trwania ok. 10 ms (zaobserwowane na oscyloskopie - wygląda to dobrze). Wygląda tak jakby w ogóle nie wchodził do obsługi przerwania. Czy ktoś może coś doradzić co może być nie tak? Próbowałem kilku rzeczy ale efekt jest cały czas ten sam. Z góry dziękuję za odpowiedź.
Poniżej procedura inicjalizująca i obsługi przerwania. Port A jest ustawiony jako wyjście przed wywołaniem tych procedur.

Listing usunięty - Różowo-Zielony J.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 15:58 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3209
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

A co z 11 przykazaniem? topic7402.html

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 sty 2015, o 17:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2011
Posty: 401
Lokalizacja: Siedlce
Pomógł: 7

Niestety przerwania PCInt działają na oba zbocza sygnału i wykrywanie zbocza trzeba zrobić samemu w obsłudze przerwania.

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


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

_________________
Czekamy na RedBook'a!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2015, o 09:32 
Offline
Nowy

Dołączył(a): 19 wrz 2013
Posty: 20
Pomógł: 0

Niestety w dalszym ciągu nie działa. Kod minimalnie zmieniłem:

W zwiazku z lekceważeniem zaleceń listing usunięty, Różowo-Zielony J.


W dalszym ciągu wygląda to tak jakby program nie wchodził w ogóle w obsługę przerwania.

Pozwolę sobie przytoczyć fragment noty katalogowej:
Cytuj:
Each PCINT[15:8] bit selects whether pin change interrupt is enabled on the corresponding I/O
pin. If PCINT[15:8] is set and the PCIE1 bit in EIMSK is set, pin change interrupt is enabled on
the corresponding I/O pin. If PCINT[15:8] is cleared, pin change interrupt on the corresponding
I/O pin is disabled.


W rejestrze EIMSK nie ma bitu PCIE1, jest tylko INT1 i INT0. Próbowałem ustawić każdego z nich lub oba ale bez pozytywnego efektu - można nawet powiedzieć że program się posypał bo nie przechodził przez inicjalizację przerwania PCINT (wcześniej to robił ale go nie obsługiwał). Próbowałem również ustawić bit PCIE1 ale nie zaskoczyło - program się zawiesił.
Chciałbym żeby program reagował na zbocze narastające.
Ma ktoś może pomysł co może być źle i się nim podzieli?
Z góry dzięki za odpowiedź.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2015, o 10:50 
Offline
Nowy

Dołączył(a): 19 wrz 2013
Posty: 20
Pomógł: 0

problem rozwiązany. nie leżał on po stronie programowej ale sprzętowej. temat do zamknięcia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2015, o 22:35 
Offline
Nowy

Dołączył(a): 15 sty 2015
Posty: 1
Pomógł: 0

Możesz napisać w czym leżał problem konkretnie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 sty 2015, o 10:53 
Offline
Nowy

Dołączył(a): 19 wrz 2013
Posty: 20
Pomógł: 0

Problem był dosyć specyficzny :D Pracowałem z dwoma płytkami z których tylko jedną ja projektowałem a druga kumpel. nazwy pomieszał i po prostu konfigurowałem nie ten pin :D



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 10 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