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



Teraz jest 19 kwi 2024, o 23:25


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
Autor Wiadomość
PostNapisane: 16 paź 2018, o 15:10 
Offline
Użytkownik

Dołączył(a): 14 wrz 2017
Posty: 85
Pomógł: 1

Cześć
Mam problem z obsługą INT0 na Atmega328P. Okrojony kod wyglada tak:

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


Niestety sterowanie nie wchodzi w przerywanie. Jak napisze w programie glownym cos takiego:

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


To przy przejsciu na stan niski (linia INT0 jest podciagnieta do 3.2V) dostaje na uart komunikat ze wszedl do ifa.
Czyli jestem w stanie wykryc ze jest prrzejscie na stan niski ale cos jest nie tak z konfiguracja przerywania.
Jakies sugestie?

Michal



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2018, o 15:31 
Offline
Moderator
Avatar użytkownika

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

Po pierwsze w przerwaniu nie trzeba kasować flagi przerwania bo wtedy jest automatycznie kasowana - a w pętli głównej OK - trzeba kasować

ale flagę trzeba kasować tak:

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


a nie tak:

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


a przerwanie żeby poszło to trzeba odblokować jeszcze to przerwanie w rejestrze EIMSK

------------------------ [ Dodano po: 1 minucie ]

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

_________________
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: 16 paź 2018, o 15:39 
Offline
Użytkownik

Dołączył(a): 14 wrz 2017
Posty: 85
Pomógł: 1

Dzieki...
kurde jak wkleilem post to wlasnie zauwazylem, ze zapomnialem wlaczyl przerywanie EIMSK |= (1<<INT0);
To jest chyba jak z pokazywaniem kodu innej osobie jak zaczynasz opowiadac jaki masz problem to zauwazasz blad :)
Odnosnie kasowania to dlaczego tak trzeba kasowac ? Nawet na filmiku https://www.youtube.com/watch?v=rPxRkYTtvYg w chwili 1:43:41 ustawiasz tak jak ja (co prawda odpowiednik chyba na Atmega8) czy w atmega328p jest inaczej ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 paź 2018, o 05:42 
Offline
Moderator
Avatar użytkownika

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

szymanskim napisał(a):
Odnosnie kasowania to dlaczego tak trzeba kasowac ? Nawet na filmiku https://www.youtube.com/watch?v=rPxRkYTtvYg w chwili 1:43:41 ustawiasz tak jak ja (co prawda odpowiednik chyba na Atmega8) czy w atmega328p jest inaczej ?


dlatego odpisałem tutaj - bo wtedy w tym filmiku też zrobiłem błąd

dlaczego?

dlatego, że bez operacji OR skasujesz tylko jedną wybraną flagę przerwania a nie kilka naraz, jeśli załóżmy kilka było przypadkowo ustawionych w tym czasie, co może być niepożądanym efektem.

Operacja OR jak sobie rozpiszesz bitowo - spowoduje że załóżmy inne przerwanie mające falgę "1" a ty nie chcesz jej jeszcze kasować albo ma to zrobić procedura ISR - to że tak powiem - sama się skasuje własną jedynką

_________________
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  
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 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO