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



Teraz jest 31 sty 2025, o 15:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 4 paź 2012, o 09:55 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

Mam problem z przerwaniami otóż, "włączyłem" według DS`a przerwania PCINT w Atmega 88, tylko że nie mogę nigdzie znaleźć wektorów przerwań dla funkcji ISR.

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



//W tym miejscu poległem :mrgreen:
Kod:
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  
PostNapisane: 4 paź 2012, o 10:02 
Offline
Moderator
Avatar użytkownika

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

A używasz ECLIPSE czy nie ? ;) bo przecież trąbimy wciąż na forum że w Eclipse masz to od razu na wierzchu i nie trzeba nigdzie szukać

_________________
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: 4 paź 2012, o 10:11 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

Nie używam eclipse :? , ale przeszukałem iom88pa.h i nie znalazłem żadnych wektorów przerwań.

Wektory przerwań są tylko dla PCINT0_vect i PCINT1_vect, a Atmega88 ma ich 23

Dla PCINT znalazłem tylko takie definicje:

przykład:
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  
PostNapisane: 4 paź 2012, o 11:08 
Offline
Moderator
Avatar użytkownika

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

ps19 napisał(a):
Nie używam eclipse :? , ale przeszukałem iom88pa.h i nie znalazłem żadnych wektorów przerwań.

Wektory przerwań są tylko dla PCINT0_vect i PCINT1_vect, a Atmega88 ma ich 23

Dla PCINT znalazłem tylko takie definicje:

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


No widzisz, a my wszyscy na tym forum używamy Eclipse i tobie też polecam bo tu masz wszystko czego ci potrzeba nie tylko wektory przerwań. Poczytaj na naszym forum o Eclipse - zobacz co to jest. Zajrzyj też tutaj:

http://mirekk36.blogspot.com/2011/11/dl ... tudio.html

zresztą sam zobacz na ten obrazek - jak pięknie widać pod ręką wektory ale widzisz jeszcze inne tam zakładki z pinami itp

Obrazek

poza tym przeczytaj i popatrz na to:

http://mirekk36.blogspot.com/2012/03/ec ... nazwy.html

tu masz jeszcze inny sposób pokazany - jak widzisz - dzięki Eclipse można "WSZYSTKO" ;) więc dołącz do grona tych który lubią i cenią wygodę programowania ;)

_________________
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: 4 paź 2012, o 11:10 
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

Masz tylko 3 wektory PCINT0...2_vect. Do każdego jest przydzielone maksymalnie 8 wejść PCINTx, np. zmiana stanu wejścia z zakresu PCINT0...7 powoduje skok do wektora PCINT0_vect i w tej procedurze obsługi musisz sprawdzić które z wejść (PCINT0...7 dla PCINT0_vect) wywołało przerwanie.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Ostatnio edytowano 4 paź 2012, o 11:18 przez Krauser, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 paź 2012, o 11:11 
Offline
Moderator
Avatar użytkownika

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

ps19 napisał(a):
Wektory przerwań są tylko dla PCINT0_vect i PCINT1_vect, a Atmega88 ma ich 23


aaaaa jeśli o to chodzi ;) to panie kolego to związane jest że procki nie mają oddzielnego wektora dla KAŻDEGO pojedynczego przerwania PCINT, (o matko to by musiało być tych wektorów natłuczone w procku) ;) .... po prostu zwykle bywa kilka grupowych wektorów np dla całego portu a ty musisz wewnątrz obsługi przerwania już programowo sprawdzić z którego konkretnie pinu nadeszło to przerwanie - rozumiesz ?

Więc ich obsługa (tych przerwań) jest całkiem inna niż typowych INTx


Autor postu otrzymał pochwałę

_________________
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: 4 paź 2012, o 11:26 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 224
Lokalizacja: Opole
Pomógł: 24

Wszystko jasne oprócz tego
Cytuj:
sprawdzić z którego konkretnie pinu nadeszło to przerwanie

- mianowicie nie mam pomysłu jak to sprawdzić ?

Z tego co zrozumiałem z DS to trzeba sprawdzić czy nie zmienił się stan, któregoś z PCINT np. PCINT7 ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 paź 2012, o 11:50 
Offline
Użytkownik
Avatar użytkownika

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

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

gdzie:
PINC - rejestr wejściowy portu C
0b00001111 - maska, pozwala odczytać tylko wybrane piny danego portu (tutaj PC3 do PC0)

PS.
Trzeba sprawdzać kierunek zmian bo przerwanie PCINT jest wywoływane zarówno przy zboczu rosnącym jak i opadającym co powoduje podwójne zliczanie (gdybyś np. chciał zwiększać licznik takim przerwaniem).


Autor postu otrzymał pochwałę

_________________
Czekamy na RedBook'a!



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

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