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



Teraz jest 19 kwi 2024, o 16:07


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 3 sty 2017, o 15:57 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 19 lis 2016
Posty: 21
Pomógł: 0

Witam
Dziś doświadczyłem ciekawego problemu z obsługą przerwań

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

opis tak w skrócie:

najpierw inicjacja UART, LED,enkodera (włączenie obsługi przerwań)
Pętla while w nieskończoność
a w niej najważniejsze to:
wysłanie na led ,uart
i na końcu delay


Problem:
w takiej formie program działa ale obsługa przerwań wykonuje tylko else (zmienna--)
gdy zakomentuje uart_putc(zmienna); program działa prawidłowo;
ale...
jeśli pozostawię uart_putc(zmienna); i zmniejszę delay na 100 program tez prawidłowo działa


nie rozumie jak delay jak i uart wpływa na prace programu
Uart na pewno korzysta z przerwań to oczywiste musi, aby wysłać szeregowo dane ale delay ? Nie wiem jak jest skonstruowana funkcja nie zagłębiam się w biblioteki bo to za wysokie progi :)

może ktoś dostrzeże ewidentny błąd popełniany przez nowicjuszy bo ja nie potrafię
każde uwagi mile widziane
pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2017, o 16:07 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 103
Pomógł: 3

Nie analizowałem całego kodu, ale pierwsze co się rzuca w oczy to brak przedrostka volatile przy zmiennych, które są wykorzystywane w przerwaniu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2017, o 16:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 820
Lokalizacja: Tam gdzie PYRY są
Pomógł: 64

a jak konfigurujesz przerwania int0 i int1????

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2017, o 16:22 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 19 lis 2016
Posty: 21
Pomógł: 0

skalarro napisał(a):
a jak konfigurujesz przerwania int0 i int1????


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


i szkielet funkcji LED

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: 3 sty 2017, o 17:39 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 19 lis 2016
Posty: 21
Pomógł: 0

Elektro_maniak napisał(a):
Nie analizowałem całego kodu, ale pierwsze co się rzuca w oczy to brak przedrostka volatile przy zmiennych, które są wykorzystywane w przerwaniu

ups pisze 2 raz bo odpowiedz znikła :(
już użytkownik anshar zwrócił mi uwagę na brak przedrostka a nawet cały artykuł.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2017, o 22:25 
Offline
Moderator
Avatar użytkownika

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

sprawdź czy w bibliotece uart nie pozostawiłeś pan zainicjalizowanej obsługi RS485 ;) popatrz tam z jakimi pinami to się wiąże i dlaczego może być problem w takim układzie jak masz


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 sty 2017, o 21:31 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 19 lis 2016
Posty: 21
Pomógł: 0

mirekk36 napisał(a):
sprawdź czy w bibliotece uart nie pozostawiłeś pan zainicjalizowanej obsługi RS485 ;) popatrz tam z jakimi pinami to się wiąże i dlaczego może być problem w takim układzie jak masz

Jak zwykle ma Pan racje.Za komentowanie linijek w biblitece #include "MKUART/mkuart.h"
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

rozwiązało problem
Tyle że skąd mam o tym wiedzieć że należy je za komentować w Pana bibliotece ?
pozdawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sty 2017, o 21:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 820
Lokalizacja: Tam gdzie PYRY są
Pomógł: 64

tommot napisał(a):
Tyle że skąd mam o tym wiedzieć że należy je za komentować w Pana bibliotece ?


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


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


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



Mirek, powiedz wreszcie, Ty jednak masz tą szklaną kulę co?

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sty 2017, o 22:54 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 19 lis 2016
Posty: 21
Pomógł: 0

Jeśli bym zerkał do wnętrza biblioteki może może by mi to wpadło w oko ale tak się nie stało :)

// definicje na potrzeby RS485
Mówi mi tylko tyle że są potrzebne do rs485 nie mówią że powinny być wyłączone jeśli ich nie używamy - a ja jako początkujący rozumie kompilator w sposób taki "nie użył to nie załączam "
Teraz wiem że trzeba patrzeć na to nieco inaczej.

Po podpowiedzi Mirka zauważyłem konflikt pinów //#define UART_DE_BIT (1<<PD2)
a co do jego szklanej kuli ;)to można je włożyć miedzy bajki.

On jest po prostu dobry i zna się na rzeczy. Czyta kod jak gazetę i dostrzega takie błędy automatycznie :)

OK Jeszcze raz dziękuje za pomoc i Pozdrawiam



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

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