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



Teraz jest 6 sty 2025, o 07:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 11 wrz 2016, o 23:42 
Offline
Nowy

Dołączył(a): 11 wrz 2016
Posty: 2
Pomógł: 0

Witam,

Skonfigurowałem USART żeby wysyłać dane, do komputera lecą prawidłowo. Chciałem teraz odbierać dane z komputera, jednak chciałbym to zrobić w przerwaniu aby tam w tablicy buforować dane i co jakiś czas obrabiać je w głównej pętli programu. Problem jest z tym, że po uruchomieniu przerwań uzyskuję jakieś śmieci - tak mi się wydaje, bo nie wysyłam żadnych danych a indeks w poniższym kodzie rośnie cały czas:

Cytuj:
#define F_CPU 8000000UL <----- zapamiętaj TEGO NIGDY nie robi się w kodzie programu ! [mirekk36 ]

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.


Częstotliwość (8MHz na wewnętrznym kwarcu) i prędkość jest raczej dobrze liczona bo jak się pomyliłem z konfiguracją to Terminal.exe miałem krzaki gdy wysyłałem coś z procka.

A teraz nie wysyłając żadnych danych do proca, otrzymuje:
Cytuj:
index: 217
ramka: ?‹•áż°¸°C!®|?‹˝üřü…˙ţđ-˝üřţ~ţđ-ýţü˙˙đ-˙˙ţ˙đ-˙˙řK˙ř˙ü¤?‹•áż°˙
ňü<'úúřƒŹűţ°Z˝üüţ~˙ţđ}ţü˙ůđ˙ţ˙đ-˙đ-˙˙ü˙üü¤ţ°˙Źűţ:ŇúĆřzűţđ˙ţţ~˙ţř˙ţůđ˙đ-˙đ˙ţüüä˙†˙ź˙żű?˙˙řţţţ˙üţůđ˙ř˙řţüüöǁźq˙˙ř˙˙˙ţ˙üü˙ţţ˙~ţźü˙ţţ˙˙˙˙ç˙˙˙ěü?‹•ăż°»LjŹűüka:`ż°¸đüű|?‹ţüţŁŘţř˙
index: 171
ramka: ţţ~ţř˙˙˙˙ř˙ţ˙đmü÷ř˙üö ż°˙đělü<'˙˙ƃŹű˙ř˙üüţţ˙řţü˙űř˙đ-ř˙˙ü˙üţö˙űţ˙':?˙˙˙ţ˙˙˙˙ţůřřýđ˙ţţţö†˙?˙ű?˙ü˙˙˙üţüřţüţ˙~źqü˙˙ţ˙ţţţţ˙ţ˙çţţ˙˙˙˙˙ěţż°»îł¶ükáżđúƒĂƒţţ°Zţţ˙>ţř˙
Ź?‹żüż°LSţŹűĽk+éƒű˙˙ř˙˙üţ˙đţüüö˙üřđělüľűƃźüüüţ˙ü˙˙űřřă˙˙ü˙ţ˙˙űţŰ˙y˙˙˙˙˙ţůüüřţţţ
index: 124
ramka: ˙Ç°úűžţ˙˙ü˙ţüüţ˙˙ţźü˙˙ţ˙˙˙˙ţß˙˙˙˙ţ˙ż°ű˙żţ­żđ˙řü˜ţ°˙˙˙>ţř˙üţżüżđîż°ŹűĽ˙ďř˙˙řţ˙đţüţ˙ţđěüţ˙ç°ŁĆţţ˙ü˙˙üüŢ˙ü˙˙†żţ˙˙˙˙˙˙ţţţţěü?‹•ăż°.&jŹűüka:`˙żyţţţüü˙˙Ć˙˙˙˙ţß˙˙żđ˙kƒüţÜ°˙˙ż˙üüţ˙ţřďƒűţř˙˙ü˙řüţ˙˙řţţ˙çđľŢ˙ü˙˙ţţ˙ü˙˙Ç˙˙˙˙˙˙˙ţěü?ż°.·ł¶ükáżđźżyţţ˙ţţ˙Ć˙˙˙˙˙ř
index: 60
ramka: ƒüţÜř˙üüţ˙üƒűţřţřüţü˙˙çđ˙˙ţ˙ţţţÇ˙˙˙ţěü˙ř雳ţüđźżů˙˙˙˙Ć˙˙ř
Ź?‹˝üż°jŹűüka:`8˙ţ˙üü˙ţŘţř˙üţ˙˙˙çř˙ţţţţţěü˙ü˙żţüđ˙˙˙˙˙ĆĆ
Ź?›ţř" ­ţţ<'á˙ţ˙ţř˙üţ˙˙˙˙ţţţţţü˙żţţř˙˙˙Ćçüţmţřf°˙˙:˙˙˙üţúţţţ˙˙ţżţţřçţ˙ü÷ű˙zŹüţúţ˙˙ţżţţüßň˙ü÷˙Ćţúţ˙ţţü˙űţ˙Ćţ˙˙˙ü˙ű˙ç˙˙˙üď˙˙üţ˙Ć˙˙˙˙˙ř



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 wrz 2016, o 00:39 
Offline
Moderator
Avatar użytkownika

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

Zapamiętaj sobie o tym co napisałem wyżej na czerwono - ten dopisek

_________________
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: 12 wrz 2016, o 06:38 
Offline
Nowy

Dołączył(a): 11 wrz 2016
Posty: 2
Pomógł: 0

mirekk36 napisał(a):
Zapamiętaj sobie o tym co napisałem wyżej na czerwono - ten dopisek


Wyrzuciłem tą deklarację do main.h, zadeklarowałem ją w pierwszej kolejności w pliku main.c, usart.c i hd44780.c jednak problem dalej występuje. Jak zrobiłem wysyłanie co 1 sekundę wartości zmiennej index, to nie wysyłając nic z komputera, wpada po 9 znaków, czyli mam:
Cytuj:
index: 1
index: 10
index: 19
index: 28


Gdy wyślę coś z komputera, to zaburzam tą stałą wartość i mam:
Cytuj:
index: 1
index: 10
index: 43
index: 51


Już nie rozumiem, co tutaj się dzieje...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 wrz 2016, o 07:10 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2590
Pomógł: 128

Częstotliwość cpu ustawiasz wyłącznie w opcjach projektu a nie w źródle.
Masz saleae, żeby się podłączyć i sprawdzić jaki dokladnie sygnal masz na wyjściu z procka?

Sent from my Mi-4c



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 wrz 2016, o 07:22 
Offline
Użytkownik

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

Zacząłbym od dokładnego sprawdzenia połączeń. Objawy, które opisujesz mogą wskazywać na przerwę w obwodzie pomiędzy TXD komputera, a RXD mikrokontrolera (oczywiście poprzez konwerter napięć).



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

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