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



Teraz jest 12 gru 2024, o 13:08


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 120 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4  Następna strona
Autor Wiadomość
PostNapisane: 27 paź 2012, o 00:43 
Offline
Moderator
Avatar użytkownika

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

jesteś pewien że zarówno w procku jak i w putty masz ustawione dokładnie takie same parametry ? np:

9600, 8, n, 1

??

_________________
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 paź 2012, o 15:44 
Offline
Nowy

Dołączył(a): 15 paź 2012
Posty: 6
Pomógł: 0

Tak, mam ustawione tak samo. Jako dowód dołączam screen:

Obrazek
Oczywiście fragmentu kodu pochodzą z odpowiednich plików a nie z tego samego :)

Mam jeszcze, pytanie jaki powinien być ustawiony czas w pętli głównej? Zauważyłem że od niego też zależy co mam na wyświetlaczu.

EDIT:
Rozwiązałem już mój problem problem. Polegał on na tym iż w poprzedniej wersji kodu funkcja uart_getc była wywoływana dwa razy i jeśli wysłałem znak, warunek różności od 0 był spełniony to funkcja wywoływana była drugi raz w funkcji wyświetlenia na lcd. Dlatego zwracana zawsze była wartość 0 i stąd te krzaki.
Kod działający ok:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.




Swoją drogą możemy napisać aby funkcja uart_getc() która według definicji ma zwracać char zwracała 0?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2012, o 21:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Witam!
Chciałem przetestować funkcję "uart_get_str" z drugiej książki lecz coś mi to nie wychodzi.
Mianowicie wysyłam stringa po RS485 z jednego zestawu ATB i chcę odebrać na drugim. Na pojedyńczych ascii działa. Ale jak
chcę użyć funkcji uart_get_str to kompilator wyrzuca błąd:

../main.c:31: error: too few arguments to function 'uart_get_str'
../main.c:31:22: warning: character constant too long for its type
fragment kodu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2012, o 21:43 
Offline
Użytkownik

Dołączył(a): 15 lut 2012
Posty: 344
Lokalizacja: Bydgoszcz
Pomógł: 11

Nie wiem czy to jest to ale
Kod:
if(*uart_get_str()=='napis')
a powinno być
Kod:
 if(*uart_get_str()=="napis"){

bo w końcu to jest łańcuch a łańcuchy podaje się właśnie w cudzysłowach a nie w apostrofach, ale co do tego czy to jest przyczyna problemu to głowy nie dam...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2012, o 21:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Nie - ponieważ wywołując samą funkcję uart_get_str w pętli while() dostaję ten sam błąd.

------------------------ [ Dodano po: 21 minutach ]

Ok - już mam - źle wywoływałem funkcję:/

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2012, o 22:15 
Offline
Moderator
Avatar użytkownika

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

Panowie panowie - to nie Bascom albo Pascal, albo C++ na PC, gdzie w ten sposób można porównywać stringi

if( string1 == string2 )

naturalnie MichalXY bardzo słusznie zwrócił uwagę, że taki zapis 'napis' to już w ogóle nie ma sensu - i kolega ark_go musi sobie przypomnieć czym się różni cudzysłów od apostrofa w C bo będzie jeszcze mnóstwo podobnych błędów popełniał - i to krytycznych

wracając do tematu w C macie kilka różnych funkcji do porównywani stringów czy tam fragmentów pamięci, tablic itp - zresztą to wszystko jedno i to samo

strcmp()
memcmp()

itp ... zajrzeć proszę do dokumentacji PDF, którą każdy posiada na własnym dysku twardym w folderze WinAVR 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: 2 lis 2012, o 22:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

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


ale dostaje warning:
comparison with string literal results in unspecified behavior

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lis 2012, o 22:29 
Offline
Moderator
Avatar użytkownika

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

arko_go napisał(a):

ale dostaje warning:
comparison with string literal results in unspecified behavior


a czytałeś chociaż to co wyżej napisałem ?

_________________
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: 3 lis 2012, o 10:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Poczytałem o tej funkcji w dokumentacji pdf z WinAVR. Tylko teraz nie wiem jak to w ogóle ugryźć.
Jak mam to zrobić? Najpierw pobrać stringa funkcją uart_get_str? a później porównać i jeśli się zgadza przypisać akcję?

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lis 2012, o 12:09 
Offline
Moderator
Avatar użytkownika

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

Tak się zastanawiam się czy patrzymy razem w tego samego PDF'a ??? po tym co piszesz :(

Obrazek

Funkcja strcmp() zwraca liczbę typu integer, która może być: mniejsza, równa lub większa niż zero.
Jeśli s1 jest znaleziony w s2, to analogicznie jest mniejszy, równy lub większy niż s2.
Konsekwencją porównania/przyporządkowania wykonanego przez strcmp(), jeśli s1 jest początkową częścią s2 to s1 jest uważany za mniejszy niż s2.

no toż trzeba na to spojrzeć jak na funkcję panie kolego. Masz ładnie zwracany rezultat porównania. Chyba widzisz z tego że jeśli obydwa stringi są identyczne to rezultatem będzie zero.

można byłoby to zapisać nawet tak, chociaż będzie trochę zagmatwane :

Kod:
if( !strcmp( uart_get_str(&a), "napis") ) ....


ale żeby lepiej było widać to można napisać to np tak:

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


ale można też zapisać to jeszcze na milion innych sposobów

_________________
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: 3 lis 2012, o 17:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Coś jeszcze pokrzaczyłem bo wysyłać stringi na uart wysyła ale jakoś niemogę odebrać i wyświetlić na LCD.

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


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

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lis 2012, o 18:17 
Offline
Moderator
Avatar użytkownika

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

Ty sobie najpierw sprawdź co otrzymujesz za string - wyświetl go , zatrzymaj program a dopiero później myśl o porównaniach. No trzeba sobie umieć jakoś dzielić problem na mniejsze kawałki żeby sprawdzać co jest nie tak.

_________________
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: 3 lis 2012, o 18:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Próbowałem według wskazówek wyświetlić to co dostaje:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


ale nic nie wyświetla.:/

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2012, o 16:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Walczę z tym odbieraniem stringów po RS485, ale niema efektów.
Pojedyncze znaki odbiera czyli komunikacja działa, ale całego stringa jakoś nie mogę:/

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2012, o 17:12 
Offline
Moderator
Avatar użytkownika

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

Poczekaj poczekaj. Może zanim przesiądziesz się na RS485, sprawdź sobie jak to działa w normalnych warunkach, bez np adresowania układów SLAVE na zwykłym RS232 bo być może mieszasz wiele rzeczy naraz :(

W drugiej książce masz ładny przykład funkcji

Kod:
char * uart_get_str(char * buf);


i nie powiesz mi, że ona nie działa. Że odbiera jakieś tam pojedyncze znaki ASCII.

nie wiem po prostu co ty robisz i jak robisz - żebym miał coś dalej podpowiedzieć.

Ale zaraz zaraz ???? co ja widzę ??? :roll:

ty w kodzie tworzysz sobie w locie niezainicjalizowany wskaźnik:

Kod:
char *a;


a potem coś takiego:

Kod:
uart_get_str(&a);


sorki, o matko! - a może spróbuj sam wyjaśnić co ty tu próbujesz zrobić - to może sam zobaczysz jaki babol wymyśliłeś ? Jak mi napiszesz wyjaśnienie tego zjawiska - to ja cię wtedy naprowadzę.

Tylko aż się dziwię, dlaczego mając drugą książkę ( nie korzystasz ze sposobu opisanego ze zdarzeniem ???) ale - ok - opisz to co tu wymyśliłeś ok ? w miarę dokładnie.

_________________
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 lis 2012, o 17:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Generalnie chcę zrobić komunikację po RS485, aby sterować silnikami i kamerą. I zamarzyło mi się na początek żeby wysyłać znak i do odebranego znaku na drugim zestawie ATB przypisać akcję np: obrót w prawo silnikiem. Później myślę, że lepiej będzie wysłać stringa bo mi liter w alfabecie braknie i na końcu mi się wszystkie pomieszają co do czego miało być, a tak to napisze np: "obrót w prawo" i wyśle. Jak odbiorę to przypiszę odpowiednią akcję i silnik się zakręci.
Co do funkcji co ja tam na mieszałem -eh - próbuję pobrać adres do bufora który przechowuje string.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2012, o 18:27 
Offline
Moderator
Avatar użytkownika

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

No więc właśnie - to "odmieszaj" i daj znać ;)

_________________
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 lis 2012, o 18:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Czyli jak mam wykorzystać tą funkcję do odebrania stringa? bo w takim razie jej nie kumam!

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2012, o 19:12 
Offline
Moderator
Avatar użytkownika

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

Kod:
char * uart_get_str(char * buf);


ale czego nie kumasz ? :(

no podajesz jako argument funkcji bufor do którego ma zostać odebrany string .... widzisz argument funkcji ?

i dla wygody rezultatem tej funkcji jest też wskaźnik do początku tego bufora

musisz jakoś bardziej opisać - tego czego tu nie rozumiesz bo nie wiem co dalej napisać ? :(

_________________
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 lis 2012, o 19:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

pomalutku - najpierw tworzę sobie globalnie bufor[100];
a później pobieram stringa za pomocą funkcji uart_get_str() i wyświetlam na LCD

czyli ma to być w taki sposób?:

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

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2012, o 19:30 
Offline
Moderator
Avatar użytkownika

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

no dokładnie tak, tylko że w ten sposób marnujesz zasoby procesora, po to pokazałem coś takiego:

UART_RX_STR_EVENT(bufor); // zdarzenie odbiorcze 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: 4 lis 2012, o 19:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Do zdarzenia odbiorczego dojdę małymi kroczkami.
W takim razie muszę mieć coś skopane w transmisji RS485.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2012, o 20:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Mirku mam problem z bibliotekami MKUART i MKUSART.
Mianowicie prosty program w którym wpisuje z terminala literkę 'n' powoduje zapalenie się diody LED działa na bibliotece MKUART
natomiast na MKUSART już nie!! :zonk

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

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lis 2012, o 21:12 
Offline
Moderator
Avatar użytkownika

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

Po to zmieniłem nazwy żeby pokazać że biblioteki te BARDZO się różnią od siebie. Proponuję jednak przed użyciem dokładnie przeczytać o co chodzi. Szczególnie przed użyciem drugiej. Bo widzę, że kolega nie przeczytał i próbuje używać. A to będzie prowadzić do dziwnych rzeczy.

Zaznaczam, że biblioteka MKUART z pierwszej książki jest TYLKO poglądowa i napisana do celów dydaktycznych, szczególnie jeśli chodzi o odbieranie danych. Nie jest w niej rozwiązane sporo różnych rzeczy - a to po to aby można było zrozumieć prosty przykład.

W drugiej książce jest już inaczej (i biblioteka nie jest już czysto dydaktyczna) - ale bez przeczytania dokładnego - rozdziału na temat transmisji ASCII będzie koledze trudno cokolwiek z nią zrobić. Bo nie rozumiesz PODSTAWOWEJ zasady jej działania (przez niedoczytanie tego rozdziału). W skrócie:

chodzi o transmisję ASCII opartą stringi - zakończone znakami CR ewentualnie CRLF. Więc jak chcesz sobie obsłużyć wysyłanie pojedynczego znaku ? Nie nie - proszę jednak przeczytaj ten rozdział i nie odkładaj na później - a od razu zaczniesz korzystać przy okazji ze zdarzeń EVENT's w tym przypadku. A jak coś będzie niejasne to pytaj - wtedy będzie mi łatwiej coś wytłumaczyć, doprecyzować - niż teraz tłumaczyć - gdy nawet nie przeczytałeś o co chodzi - 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: 5 lis 2012, o 19:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Toż to jest genialne rozwiązanie:)
Poczytałem Mirku na ten temat głębiej i już więcej kumam temat. Na razie na podstawie tego stworzyłem w sumie swoja funkcję:).
Teraz muszę wplątać do tego komunikacje po RS485 i mam genialne rozwiązanie mojego problemu:)
Z jednego zestawu wyślę komendę AT:) a na drugim z prasuje:) i dodam odpowiednią funkcję która wykona planowe działanie (w moim przypadku to kręcenie silnikiem itp.)

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lis 2012, o 19:42 
Offline
Moderator
Avatar użytkownika

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

No i o to chodziło ;) .... a tak się wzbraniałeś przed tym ;) .... kurczę szkoda, bo wielu ludzi nawet mając książkę - podchodzi do tematu jak do jeża - bojąc się nawet przeczytać co niektórych rozdziałów - uważając, że będzie to za trudne ;) .... a tymczasem sam widzisz jak jest. Wszystko kwestia odpowiedniego przedstawienia tematu.

Więc jeśli już zaskoczyłeś - to wspomnij czasem znajomym o takich rozwiązaniach w moich książkach ;)

A jak coś - to oczywiście śmiało dopytuj - zawsze chętnie odpowiem.

_________________
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: 7 lis 2012, o 18:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Witam!
Konfiguruje UART dla atmegi644p ale coś mi jednak nie wychodzi bo komunikacji nie ma.
Czy dobrze wpisałem nazwy wszystkich rejestrów i przerwań. Błędów kompilacji nie ma ani też warningów.

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.


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.


------------------------ [ Dodano po: 17 minutach ]

OK:) już poprawiłem:)

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2012, o 15:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Odbiegając trochę od wysyłania komend AT. Chciałem przetestować samą funkcję do odbierania stringów uart_get_char();
W pętli while odbieram znaki za pomocą wyżej wymienionej funkcji, i próbuje wyświetlić na lcd - ale coś to mi nie wyświetla tego co wstukam w terminalu.
Gdzie popełniam błąd?

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

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2012, o 18:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Delay w pętli dodany. Kwarc mam standardowy jaki Mirek daje do ATB 11059200.
cały kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Cytuj:
Dodatkowo sprawdzaj, czy cokolwiek odebrałeś zanim wyślesz to na wyświetlacz

Przydał by się jakiś przykład jak tego dokonać:)

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2012, o 19:04 
Offline
Moderator
Avatar użytkownika

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

Tak się składa, że ten przykład u mnie działa od pierwszego odpalenia ale ....

ale oczywiście jak się go uruchomi zgodnie z książką przynajmniej, tymczasem kolega ark_go jakoś bardzo umiejętnie wciąż wszystko miesza na maxa :(

1. używasz biblioteki MKUART z pierwszej książki ?
2. a do tego luzem dopisanej funkcji uart_get_str() - tak na zasadzie (przepraszam za określenie) "Ni przypiął ni wypiął" albo na zasadzie: "aaaa spróbuję sobie tak napisać - a może zadziała?"

przepraszam ale w ogóle nie rozumiem takiego podejścia - tym bardziej, że gdy coś podpowiadam to kolega robi sobie coś innego ....

jeszcze raz ale na prawdę ostatni raz powtórzę jeśli będzie bez echa,

użyj sobie najpierw na czysto funkcji z DRUGIEJ książki bo pisałeś że ją masz, tam masz bibliotekę MK_USART i to ją zainkluduj. W tej bibliotece już jest zawarta funkcja uart_get_str() więc wywal ją z tego swojego main.c, odpal wszystko najpierw na zwykłym RS232 i naucz się robić to w podstawowej wersji. Bo jak na razie to widać, że hmm no może nie chce ci się nawet dogłębnie zapoznać z tą nowszą biblioteką (wszak pisałeś mi że nie widzisz różnic pomiędzy tą z pierwszej i drugiej książki) ... a ty sobie jeszcze wrzucasz RS485, którego też może nie do końca rozumiesz i kołomyja ci wychodzi....

PEWNIE, że tak jak teraz masz ten kod wyżej ze sztucznie dodaną funkcją uart_get_str() i biblioteką MKUART - nie ma prawa zadziałać i nic się na LCD nie pojawi i bardzo dobrze .... ale to każdy od razu zobaczy jak prześledzi tą funkcję i przerwanie odbiorcze....

więc zrób jak mówię i sprawdź że to działa - a potem powoli i po kolei wprowadzaj własne modyfikacje - inaczej będziesz się kręcił w kółko

_________________
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: 120 ]  Przejdź na stronę Poprzednia strona  1, 2, 3, 4  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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