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



Teraz jest 29 lis 2024, o 15:37


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 26 lis 2014, o 19:33 
Offline
Nowy

Dołączył(a): 21 sie 2014
Posty: 18
Pomógł: 0

Witam,

Mam atmegę8, wyświetlacz hd44780 i moduł GPS. Chciałbym odczytywać z niego dane i wyświetlać na wyświetlaczu (Ramka GPS):
Kod:
$GPGGA,123951.000,9902.1447,N,09958.0482,E,1,8,0.97,265.2,M,40.6,M,,*54

Do wyświetlacza używam gotowej biblioteki, a z rs'em komunikuję się w przerwaniu. Problem tkwi w tym, że zamiast kolejno pobieranych pojedynczych znaków, jakieś krzaczki zasypują mi cały lcd. W czym tkwi problem? Oto kod programu:

[ panie kolego - zajrzyj tutaj: topic7402.html i przeczytaj DOKŁADNIE jak formatować kod na forum ok? - mirekk36 ]

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



Ostatnio edytowano 30 lis 2014, o 23:04 przez radmistrz2, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2014, o 20:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

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

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


Iloczyn logiczny oraz funkcja wypisująca znak, a nie łańcuch znakowy. Dla typu "char" zmiennej "znak" nie ma w sumie sensu druga część wyrażenia bo jej zakres to od -128 do 127. Twój zapis warunku jest zupełnie bez sensu...


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2014, o 21:21 
Offline
Nowy

Dołączył(a): 21 sie 2014
Posty: 18
Pomógł: 0

niestety to nie pomogło :( w dalszym ciągu mam jakieś dziwne znaczki...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2014, o 21:59 
Offline
Nowy

Dołączył(a): 29 gru 2013
Posty: 7
Lokalizacja: Radomyśl nad Sanem
Pomógł: 0

spróbuj ustawić inny BAUDRATE

_________________
-----------------------
sjedrzej



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 26 lis 2014, o 22:14 
Offline
Moderator
Avatar użytkownika

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

radmistrz2 napisał(a):
niestety to nie pomogło :( w dalszym ciągu mam jakieś dziwne znaczki...


czytałeś uwagę na czerwono w pierwszym poście ? proszę przeczytaj i popraw bo inaczej wątek będzie musiał zniknąć :(

_________________
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: 27 lis 2014, o 23:23 
Offline
Nowy

Dołączył(a): 21 sie 2014
Posty: 18
Pomógł: 0

Z GPSem przez PC komunikuję się po 9600, także w czym pomoże zmiana USART_BAUDRATE ??



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2014, o 22:14 
Offline
Nowy

Dołączył(a): 21 sie 2014
Posty: 18
Pomógł: 0

Uprościłem program, i niestety odbieram same krzaki:

Cytuj:
#define F_CPU 1000000UL <-- tego NIGDY NIE dajemy w kodzie programu !

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



EDIT: OSCCAL...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 lis 2014, o 23:38 
Offline
Moderator
Avatar użytkownika

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

Masz może Bluebooka ?

_________________
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: 30 lis 2014, o 11:19 
Offline
Nowy

Dołączył(a): 21 sie 2014
Posty: 18
Pomógł: 0

mam, właśnie tam znalazłem rozwiązanie ;) Po ustawieniu osccal na 170 wysyłanie do PC działa, ale odbiór z GPSa niestety jeszcze nie.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lis 2014, o 11:55 
Offline
Moderator
Avatar użytkownika

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

to jak masz Bluebooka to proszę cię poczytaj o tym co się dzieje jak masz taktowanie 1 MHz ... i dlaczego w książce ale i na forum wszędzie piszę - zaczynaj od 8MHz .... sprawdzaj tabelki w PDF procka na ostatniej stronie rozdziału UART ...

_________________
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: 30 lis 2014, o 12:21 
Offline
Nowy

Dołączył(a): 21 sie 2014
Posty: 18
Pomógł: 0

tak tak doszedłem tam, zapomniałem napisać, że zmieniłem taktowanie na 8 MHz.

Aktualna wersja programu - dla testów chcę wyświetlać ostatnio odebrane dane. Niestety dalej są jakieś dziwne znaczki, trochę liter, ale generalnie jakieś śmieci. Nie mam jeszcze takiego doświadczenia z C, ale sprawdził by mi ktoś czy poprawnie próbuję wyświetlić znaki? Mój wcześniejszy błąd wiązał się również z tym, że funkcja WriteLine przyjmuje argument char*, a ja nie dawałem operatora wyłuskania przed zmieną.

Cytuj:
#define F_CPU 8000000UL <---- TEGO NIGDY NIE WPISUJEMY 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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lis 2014, o 12:27 
Offline
Moderator
Avatar użytkownika

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

Posłuchaj jeśli jeszcze raz na tym forum wpiszesz kod źródłowy z tym co ci zaznaczam już któryś raz z kolei to skasuję ten kod

czy do ciebie dociera ta uwaga na czerwono ??? że w kodzie programu się nie wpisuje #define F_CPU ???? bo to nie jest żadne przestawienie częstotliwości ?

zmianę częstotliwości robisz za pomocą FUSEBITÓW procka a częstotliwość zmieniasz we właściwościach projektu w Eclipse

_________________
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: 30 lis 2014, o 12:58 
Offline
Nowy

Dołączył(a): 21 sie 2014
Posty: 18
Pomógł: 0

1. fusebity ustawiłem na MKAvrCalculator
2. Korzystam z Atmel Studi 6
3. To gdzie definiować F_CPU, bo jeśli go nie zdefiniuje to biblioteka delay.h ustawi mi go na 1000000UL?
4. Polecam dodać na forum jakąś informację na PW o edycji posta przez moderatora, bo ciężko przywyknąć, że odpowiedź może być we własnym wedytowanym poście. Postaram się przyzwyczaić do tego.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lis 2014, o 13:20 
Offline
Moderator
Avatar użytkownika

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

radmistrz2 napisał(a):
3. To gdzie definiować F_CPU, bo jeśli go nie zdefiniuje to biblioteka delay.h ustawi mi go na 1000000UL?

Zapewniam cię że i w tym środowisku nie ustawia się tego w kodzie programu .... a to co robisz w kodzie to wielki błąd i nie chcę na tym forum powielania wciąż tego błędu ... szczególnie że prawie wszyscy początkujący bawiący się Atmel Studio robią tego samego babola. Ja nie mam siły i zamiaru tłumaczyć jak to jest w Atmel Studio - doczytaj sam. Ja mogę pomóc z Eclipse.

radmistrz2 napisał(a):
4. Polecam dodać na forum jakąś informację na PW o edycji posta przez moderatora, bo ciężko przywyknąć, że odpowiedź może być we własnym wedytowanym poście. Postaram się przyzwyczaić do tego.

Liczę, że każdy kto to zobaczył będzie już pamiętał .... ok?

_________________
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: 30 lis 2014, o 13:30 

Pomógł: 0

radmistrz2 napisał(a):
3. To gdzie definiować F_CPU, bo jeśli go nie zdefiniuje to biblioteka delay.h ustawi mi go na 1000000UL?

Wybierz projekt w którym to chcesz ustawić i naciśnij Alt+F7 czyli inaczej Project -> Properties - później wybierz Toolchain -> Symbols i w górnym okienku dodaj F_CPU=8000000UL - ot i wszystko - w Eclipse w innym miejscu się to ustawia, a w AS w innym - każde środowisko ma swoje ustawienia i trzeba się ich po prostu nauczyć. Tu czy gdzie indziej, takie czy inne IDE ale generalnie dotyczy to właściwości projektu.


Autor postu otrzymał pochwałę


Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lis 2014, o 14:58 
Offline
Nowy

Dołączył(a): 21 sie 2014
Posty: 18
Pomógł: 0

udało mi się rozgryźć skąd te krzaki bądź źle wyświetlane linie - jeśli w pętli wywołałem 10 razy zm[i] = uart_getc(), to tablica miała postać {71, 0, 0, 0, 65, 0, 0, 0, 67, 0}. Teoretycznie taki kod wszystko załatwia:

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


ale wtedy przerwania tracą tutaj sens bo program długo czeka w pętli - czy dobrze myślę?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 lis 2014, o 16:41 
Offline
Nowy

Dołączył(a): 21 sie 2014
Posty: 18
Pomógł: 0

radmistrz2 napisał(a):
udało mi się rozgryźć skąd te krzaki bądź źle wyświetlane linie - jeśli w pętli wywołałem 10 razy zm[i] = uart_getc(), to tablica miała postać {71, 0, 0, 0, 65, 0, 0, 0, 67, 0}. Teoretycznie taki kod wszystko załatwia:

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


ale wtedy przerwania tracą tutaj sens bo program długo czeka w pętli - czy dobrze myślę?



EDIT: Chwilka odpoczynku i rozwiązanie samo się nasunęło ;)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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