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



Teraz jest 2 kwi 2026, o 01:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 24 sty 2017, o 00:29 
Offline
Nowy

Dołączył(a): 24 sty 2017
Posty: 4
Pomógł: 0

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


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

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


kod USART.c i USART.h pochodzi z książki "Programowanie układów AVR dla praktyków". Uruchomiłem globalne przerwania sei() ale nie widzę żadnego rezultatu (nie odbieram tego co powinno się wysłać podczas przerwania). Programuję na układzie ATMEGA328P. Co może być przyczyną tego?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2017, o 06:31 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

Nazwę przerwania masz źle. Powinno być ISR(USART_RX_vect).

Jeśli mikrokontroler ma wchodzić do procedury obsługi przerwania ISR(USART_RX_vect), to powinien być ustawiony bit RXCIE0 w rejestrze UCSR0B, a nie zauważyłem w kodzie, żebyś go ustawiał.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2017, o 13:14 
Offline
Nowy

Dołączył(a): 24 sty 2017
Posty: 4
Pomógł: 0

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

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


Teraz dostaję tylko przerwanie nawet kiedy nic nie wysyłam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2017, o 13:19 
Offline
Moderator
Avatar użytkownika

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

Ja ze swojej strony polecę tę książkę:

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

będziesz wiedział dokładnie co robisz i o co chodzi z obsługą UART i to w oparciu o bufory cykliczne

_________________
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: 24 sty 2017, o 13:39 
Offline
Nowy

Dołączył(a): 24 sty 2017
Posty: 4
Pomógł: 0

Oczywiście ją kupię tylko teraz mam inne wydatki.



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

Dołączył(a): 24 sty 2017
Posty: 4
Pomógł: 0

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


Teraz kiedy wysyłam bit do uC to przestaje się wykonywać główna pętla (pierwszy post).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2017, o 17:00 
Offline
Moderator
Avatar użytkownika

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

Cytuj:
Teraz kiedy wysyłam bit do uC to przestaje się wykonywać główna pętla (pierwszy post).

Dlatego że teraz wymyślasz już totalnie przedziwne rzeczy - czyli wewnątrz przerwania próbujesz wysłać znak a procedura czeka na zakończenie przerwania które się jeszcze nie zakończyło - i wąż zjada własny ogon ....

Do wysyłania użyj albo w sposób blokujący samego transmitbyte albo jeśli chcesz na przerwaniach .... hmmm to hmmm ta biblioteka w ogóle tego nie uwzględnia. Ty zaś próbujesz robić to na zasadzie - "a może się tak uda, albo tak .... .... bez jak na razie widzę wiedzy jak w ogóle działa system przerwań procka" ... i to powoduje że błądzisz

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

Strefa czasowa: UTC + 1


Kto przegląda forum

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