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



Teraz jest 3 gru 2024, o 13:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 18 ] 
Autor Wiadomość
 Tytuł: ADC i UART
PostNapisane: 14 lis 2012, o 20:39 
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 w ramach ćwiczeń wykonać pomiar napięcia na jednym zestawie ATB i wysłać wartość pomiaru na drugi w postaci stringa przez UART. Zmierzyć napięcie się udało i wyświetlam wartość 8 bitową na lcd.
Problem polega na tym, że nie bardzo wiem jak przekonwertować wartość którą zwraca funkcja pomiar() z ćwiczenia o ADC i wysłać ją na uart w postaci stringa.
Kodu nie będę przedstawiał do ADC bo każdy go ma.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC i UART
PostNapisane: 14 lis 2012, o 20:48 
Offline
Moderator
Avatar użytkownika

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

taaaaaaak no bardzo ciekawe - a nie przeglądałeś rozumiem pliku nagłówkowego ueart.h żeby sobie zobaczyć jakie masz do dyspozycji funkcje ????

po drugie w pierwszej książce - nawet w rozdziale o LCD z którego korzystasz nie masz opisanej metody zamiany liczb na stringi?

po trzecie w pierwszej książce w rozdziale o ADC i kodach na DVD nie ma ANI SŁOWA o zamianie liczb na stringi ?

no to ciekawe w ogóle jak wysłałeś stringa na LCD ???? może warto jednak się tym zainteresować hmmmm ;)

bo inaczej to załóż wątek w dziale "RYBNYM", tylko trochę może wstyd jeśli aż tyle przykładów masz i to pod ręką i to z nich korzystasz ;)

więc popatrz jeszcze raz, rozejrzyj się - i wtedy zapytaj o jakieś szczegóły 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  
 Tytuł: Re: ADC i UART
PostNapisane: 14 lis 2012, o 21:16 
Offline
Użytkownik
Avatar użytkownika

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

Pomógł: 6

Dobrze już wiem:)
Ale jak teraz na podstawie komend AT rozpoznać to co wysyłam czyli wartość którą zwraca funkcja pomiar().

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


To w odbiorniku jeśli odbiorę komendę AT+LED2=1 to włączam diodę. A co zrobić z:
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  
 Tytuł: Re: ADC i UART
PostNapisane: 14 lis 2012, o 21:42 
Offline
Moderator
Avatar użytkownika

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

A co nie możesz sobie zrobić polecenia

AT+ADC=x

i zamiast tego x wysłać wartość ASCII pomiaru ? a po drugiej stronie rozpoznać AT+ADC i odczytać wartość x ?

------------------------ [ Dodano po: 1 minucie ]

tylko nie mów że nie wiesz jak to połączyć ? ;)

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


i proszę poszło ładnie do terminala

AT+ADC=1023

i na końcu znaki CR LF

_________________
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  
 Tytuł: Re: ADC i UART
PostNapisane: 15 lis 2012, o 20:40 
Offline
Użytkownik
Avatar użytkownika

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

Pomógł: 6

Wysłałem ładnie komendę AT+ADC oraz wartość pomiaru i wyświetliłem na LCD. Przekonwertowałem również tą wartość do postaci dziesiętnej i zapisałem w zmiennej g.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Teraz mam pytanie, ponieważ wartość tą chcę wpisać do rejestru OCR0 i ustawiać pwm. Jak mam zwrócić tą wartość?
Funkcja zwraca wartość uint8_t.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC i UART
PostNapisane: 15 lis 2012, o 21:33 
Offline
Moderator
Avatar użytkownika

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

ja nie rozumiem twojego pytania :(

_________________
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  
 Tytuł: Re: ADC i UART
PostNapisane: 15 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

No odebrałem wartość 8-bitową z ADC, którą wcześniej wysłałem jak podpowiedziałeś. Teraz chciałbym ta wartość wpisać do rejestru OCR żeby zmieniać PWM.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC i UART
PostNapisane: 15 lis 2012, o 21:47 
Offline
Moderator
Avatar użytkownika

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

:KONSTERNACJA:

No napisałeś że odebrałeś wartość do zmiennej g, i teraz co to dla ciebie kłopot wpisać wartość g do OCR ???

OCR = g;

sorki ale albo nadal nie rozumiem albo ...... no troszkę skonsternowany jestem bo może kolega musi jednak poczytać jeszcze raz o całkowitych podstawach - pierwszą książkę - np rozdział na temat PWM ????

_________________
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  
 Tytuł: Re: ADC i UART
PostNapisane: 15 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

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

g - dałem jako zmienna globalna.
Teraz w main mam inicjalizację PWM i tam chciałem przypisać tą wartość z g, ale jak ją wyświetliłem na LCD to wywaliło 0 bo to zmienna globalna.
Dlatego pytałem jak ją zwrócić i zapisać do OCR.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC i UART
PostNapisane: 15 lis 2012, o 22:38 
Offline
Moderator
Avatar użytkownika

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

ależ ty kręcisz - matko :( .... czy nie możesz od samego początku raz a porządnie napisać o co chodzi ?? eeeeeh

to po choinkę robisz zmienną globalną a jeszcze w funkcji zwracasz tą zmienną ?

return g;

:(

toż wystarczyłoby

return atoi(params);

poza tym nadal w ogóle nie rozumiem do czego dążysz ??? no przecież ta funkcja nawet nie musi zwracać żadnego rezultatu - od razu możesz w niej zapisać do OCR

OCR = atoi(params);

.........aaaa w ogóle gorzej - teraz dopiero widzę, że ty próbujesz stosować mechanizm z 2-giej książki, z tymi funkcjami typu _service .... bo tak mi nie pasował coś typ rezultatu int8_t a ty zwracałeś przecież OCR typ uint8_t

innymi słowy mówiąc nie doczytałeś na jakiej zasadzie ja akurat napisałem te funkcje i co dają nam rezultaty przez nie zwracane - one nie mają nic wspólnego przecież z tym co otrzymujemy jako string eeeeh no to namieszałeś teraz ;)

powiem inaczej - wróć do tego rozdziału, spróbuj DOKŁADNIE przeanalizować te funkcje co one robią i jak działają a jak będziesz miał pytania to dopytaj - bo widzę, że próbujesz całkowicie po omacku coś w nich zmienić, ale bez wiedzy jak to działa - jak sam widzisz nie udaje się.

_________________
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  
 Tytuł: Re: ADC i UART
PostNapisane: 22 lis 2012, o 20:15 
Offline
Użytkownik
Avatar użytkownika

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

Pomógł: 6

Witam!
Poczytałem rozdział według zaleceń.
Generalnie temat trudny dla mnie za to idea komend AT świetna.
Więc do rzeczy.
Zrobiłem funkcję at_adc_service() według schematu. Pobiera ona wartości od 0 do 255, żeby być pewnym to wewnątrz funkcji
wyświetlam wartość na LCD.
Do funkcji przekazywane są argumenty 0,1,2 tak pisze w książce.
A ja nie mam pojęcia jak zwrócić sobie wartość argumentu komendy AT+ADC = x i zapisać ją do rejestru OCR.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC i UART
PostNapisane: 22 lis 2012, o 20:38 
Offline
Moderator
Avatar użytkownika

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

No ale już wyżej pisałem jeśli wczytasz odebrany x do zmiennej albo nawet po co do zmiennej to w tej funkcji obsługi komendy AT - wpisujesz sobie

OCRA = x;

w czym problem ? oczywiście uprzednio zamieniając ciąg znaków ASCII na liczbę za pomocą wbudowanej funkcji itoa(). Możesz zajrzeć np do funkcji lcd_int() z pierwszej książki w rozdziale o LCD

albo do funkcji uart_putint() z rozdziału o 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  
 Tytuł: Re: ADC i UART
PostNapisane: 22 lis 2012, o 20:43 
Offline
Użytkownik
Avatar użytkownika

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

Pomógł: 6

Czyli mam inicjalizację PWM-a zrobić w tej funkcji at_adc_service()?????? - jak to tak zrozumiałem!

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC i UART
PostNapisane: 22 lis 2012, o 20:49 
Offline
Moderator
Avatar użytkownika

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

No a co chcesz innego zrobić - bo już kompletnie cię nie rozumiem ? :(

Najpierw piszesz że chcesz odebrać wartość PWM i ustawić zgodnie z nią PWM w procku - podaję ci jak - a ty teraz pytasz jeszcze raz czy w ten sposób ? ... a może tobie o jeszcze coś innego chodzi ?

_________________
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  
 Tytuł: Re: ADC i UART
PostNapisane: 22 lis 2012, o 20:55 
Offline
Użytkownik
Avatar użytkownika

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

Pomógł: 6

Nie nie - generalnie myślałem na początku całkiem inaczej. Po prostu traktowałem tę funkcję jak "zwykłą" zwrócę sobie wartość tą np: x i zapisze do do rejestru OCR. A inicjalizacje zrobię w pliku main.c. I tutaj zgłupiałem całkowicie w tedy.
Czyli robię tak.
Odbieram komendę AT i argument tej komendy zapisuję do zmiennej x. Wartość tej zmiennej zamieniam na wartość dziesiętną bo taką potrzebuję i w tej samej funkcji inicjalizuje PWM i zapisuje do OCR=x.

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC i UART
PostNapisane: 22 lis 2012, o 21:18 
Offline
Moderator
Avatar użytkownika

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

No dokładnie tak - i weź sobie przeanalizuj co po co jest rezultat tej funkcji ??? przecież wg opisanej koncepcji on NIGDY nie mógłby posłużyć do zwrotu tego co zostało odebrane :(

------------------------ [ Dodano po: kilkunastu sekundach ]

zresztą masz przecież przykłady tych różnych funkcji i przecież jak na dłoni widać w nich, że odbierane parametry są od razu ustawiane właśnie w środku tychże funkcji.

_________________
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  
 Tytuł: Re: ADC i UART
PostNapisane: 22 lis 2012, o 21:26 
Offline
Użytkownik
Avatar użytkownika

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

Pomógł: 6

Jeszcze długo będe siedział nad tym rozdziałem zanim go rozkminie całkowicie.
Ale narazie wszystko super działa. Pozostaje mi jeszcze zrobić wysyłanie danych z płytki slave ATB i będe miał w pełni zrobioną komunikacje w obie strony za pomoca komend AT:)

Dzięki Mirku za pomoc!

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
 Tytuł: Re: ADC i UART
PostNapisane: 25 lis 2012, o 16:24 
Offline
Użytkownik
Avatar użytkownika

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

Pomógł: 6

Witam!
Ciąg dalszy zmagania się z komendami AT:)
Napisałem program, który wysyła komendy AT(po wbiciu przycisku) z jednego zestawu ATB do innego. Generalnie na razie jak pisałem we wcześniejszym wątku wysyłam wartość z przetwornika adc i komendę obrotu silnikiem w prawo i w lewo, a jeśli przycisk nie wciśnięty to komendę stop.
Problem polega na tym, że w lewo kręci się fajnie a w prawo przerywa w takt odebranej komendy (widać to na wyświetlaczu lcd, gdzie komendy sa wyświetlane).
Problem jest gdzieś w instrukcjach warunkowych sprawdzających przycisk.

Funkcje sprawdzające stan przycisku i wysyłające komendy:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Funkcje wywoływane dla konkretnej komendy AT w drugim zestawie:
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: 29 minutach ]

Ok już sobie poradziłem. Przerobiłem ify na switch case i jakoś się odnalazłem:)

_________________
Inspekcja TV kanalizacji
Programowanie



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

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