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



Teraz jest 4 mar 2026, o 17:20


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 11 paź 2016, o 20:51 
Offline
Nowy

Dołączył(a): 26 lis 2015
Posty: 20
Pomógł: 0

witam !

Z 1 książki przeanalizowałem komunikacje rs232-działa.Odpalone za 1 razem.
Z GB przekopiowałem przykład(zmieniłem baud rate na 9600,wew RC na 8 MHz).
Układ wyświetla ekran powitalny,następnie wchodzi do pętli głównej i ....nic

Układ zbudowany tylko i wyłącznie z atmegi32 i jednej diody zamiast wyświetlacza alfanumerycznego.
jedyne co chce osiągnać to odpowiedzi na najprostsze komendy,tak żeby poznać istotę działanie[moduły BT w drodze ].

Program główny po drobnych modyfikacjach:

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


Oprócz tego w pliku mkuart.h zmieniłem baud_rate i zakomentowałem linie

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


Na początku zapalam diodę ,potem w funkcji : UART_RX_STR_EVENT dodałem linie LED_OFF tak żeby mieć sygnał gdy dotrą dane do atmegi.

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


Problem w tym że po odpalenie Realterm wyświetla się napis ,potem program wchodzi w pętle główną
i od razu gasi diodę ( a przecież skoro nie wysyłam nic to powinien wyjść i po 300ms znów zapalić diodę) , i milczy,nie reaguje na żadne komendy(Wysyłam w RT np: "AT" lub "ATI" ,próbowałem też z "AT\r\n" ," AT\n" ale nic z tego.

Dodam że układ zbudowany na płytce stykowej ,zasilanie bezpośrednio z przejściówki http://www.sibit.pl/sklep/konwerter-usb-rs232ttl-(v2).html

Program z BB działał bez zarzutów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2016, o 21:22 
Offline
Użytkownik

Dołączył(a): 27 paź 2011
Posty: 74
Pomógł: 2

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


i "ultraszybko" znów go wyłączasz w funkcji UART_RX_STR_EVENT(bufor);

dorzuć delay-a po LED_ON i zobaczysz jak ładnie będzie mrygał :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2016, o 21:54 
Offline
Nowy

Dołączył(a): 26 lis 2015
Posty: 20
Pomógł: 0

Właśnie próbuje ustalić czy nie zapomniałem jakiejś funkcji wyłączyć i program w nią wchodzi i nie może wyjść, bo jak wspominałem wyżej,mam tylko atmega32 i z nią się kontaktuje.
Dobrze,zatem przesunę LED_ON dalej i zobaczymy co się stanie. Na wszelki wypadek przekopiuje wszystko jeszcze raz z oryginalnego folderu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2016, o 21:59 
Offline
Moderator
Avatar użytkownika

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

Jak już zabierasz się za zdarzenia - to zapamiętaj proszę - zapamiętaj na ZAWSZE - ZAPOMNIJ o DELAJACH bo masakrę sobie robisz amerykańską piłą tarczową ...

_________________
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: 11 paź 2016, o 22:12 
Offline
Użytkownik

Dołączył(a): 27 paź 2011
Posty: 74
Pomógł: 2

Chyba źle mnie zrozumiałeś.
Według mnie program działa OK, tylko po LED_ON program od razu wykonuje funkcję UART_RX_STR_EVENT która w pierwszej kolejności sprawdza czy jest coś w buforze odbiorczym, a następnie czy została zarejestrowana funkcja do obsługi odebranych danych.
A Ty przed tym wszystkim wyłączasz swojego LED-a
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

co od razu po jego włączeniu go wyłącza.

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


W pliku komendy_at.c masz funkcję parse_uart_data która odpowiada za analizę odebranych danych, tam też są przykładowe funkcje obsługujące różne komendy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2016, o 22:27 
Offline
Nowy

Dołączył(a): 26 lis 2015
Posty: 20
Pomógł: 0

@mirekk36 naturalnie, tutaj tylko delay służy jako optyczny wskaźnik(mam czas zauważyć ;)


@chemik0 oczywiście masz racje, dlatego przesunałem LED_On dalej w funkcji UART_RX_STR_EVENT. Czytałem te pliki wszystkie przed skopiowaniem

MIanowicie:

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


czyli jeżeli wystąpi nowa linia to wtedy uruchom zdarzenie,zgaś diode ,
Teraz wniosek na szybkości że nie widzi komend, a przejściówke sprawdziłem .Mam gdzieś stary program który odsyła wysłaną literke z klawiatury, ale spróbuję ogarnąć to dopiero jutro. Dobranoc;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 paź 2016, o 22:31 
Offline
Moderator
Avatar użytkownika

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

nariox napisał(a):
@mirekk36 naturalnie, tutaj tylko delay służy jako optyczny wskaźnik(mam czas zauważyć

Jeszcze raz powtarzam ... totalnie psujesz zdarzenie - a jako optyczny wskaźnik to wystarczy BYLE pierwszy lepszy timer programowy i to z Bluebooka nawet odpalić - i nie będziesz musiał zdążać zauważyć bo dioda będzie ładnie migać.

A już nie wspomnę że skoro masz GB to DOKŁADNIE w tym rozdziale jest pokazane jak taką diodę LED zapalić i zgasić ... no tylko trzeba jednak przeczytać ten rozdział ;)

_________________
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 paź 2016, o 13:45 
Offline
Nowy

Dołączył(a): 26 lis 2015
Posty: 20
Pomógł: 0

Odnoszenie wrażenie że mój ukłąd jest sprawny i działa tak jak powinien- w testerze komend,świeci się dioda TX więc atmega odpowiada nie mniej....

Zdaje mi się że nie da się tego sprawdzić tak jak mi się wydaję. Ściągłem sobie program terminal który ma opcje wysłania znaku CR po każdej komendzie. W przerwaniu wywoaływanym po odebraniu znaku sprawdziłem że normalnie w Realtermie nie rozpoznaje żadnej komendy.Dlatego teraz używam terminal,który dodaje CR i cóż się dzieje? atmega zwraca wartość wysłanej komendy bez znaku CR a sam procesor( tak wnioskuje) resetuje się i wyświetla początkowy tekst powitalny(uart_puts("...")
Poczekam na moduły BT,skonfiguruje je i zobaczymy czy wtedy wywołując komendy AT dalej będzie działo się to samo..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 paź 2016, o 14:09 
Offline
Moderator
Avatar użytkownika

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

Sorki ale jak słyszę, że ktoś szuka specjalnych programów terminali które będą wysyłać znak CR na końcu ;) to aż mnie ciarki po kręgosłupie przechodzą ;) KAŻDY WYSYŁA - KAŻDY - i to bez łaski i bez żadnego ustawiania w opcjach eeeeeh ;)

nariox napisał(a):
Zdaje mi się że nie da się tego sprawdzić tak jak mi się wydaję. Ściągłem sobie program terminal który ma opcje wysłania znaku CR po każdej komendzie. W przerwaniu wywoaływanym po odebraniu znaku sprawdziłem że normalnie w Realtermie nie rozpoznaje żadnej komendy.Dlatego teraz używam terminal,który dodaje CR i cóż się dzieje? atmega zwraca wartość wysłanej komendy bez znaku CR a sam procesor( tak wnioskuje) resetuje się i wyświetla początkowy tekst powitalny(uart_puts("...")

kombinacja tak alpejska że szok

A jak ci się procek resetuje to znaczy, że gdzieś w kodzie w main odstawiłeś takiego babola że szok :(

_________________
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 paź 2016, o 14:50 
Offline
Nowy

Dołączył(a): 26 lis 2015
Posty: 20
Pomógł: 0

ten post nie ma na celu aby ciqgle mnie pograzac , ale zeby pomoc.Spedzilem juz pare godzin nad tym. Nie zmienialem maina, skasowalem wszystkie delayeje,zostalo tylko LED_ON w przerwaniu uart od odebranych danych. Czekam na moduly BT.


Prostujac wszystkie informacje do tej pory: podpialem atmege pod rs232 , atmega nie odpowiada, nie rozpoznaje polecenia, wchodzi do przerwania od UArt , sprawdza wszystkie warunki ale nie rozpoznaje polecenia. To aamo z testerem komend ...
Czekam na BT



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 paź 2016, o 23:35 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2605
Pomógł: 129

Ogarnij najpierw żeby atmega gadala tobie po rs'ie, bo problem musisz rozwiązać zaczynając od najkrótszej drogi. Jak zacznie chodzić to wtedy będziesz dokladal kolejne klocki.

Sent from my Mi-4c



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2016, o 18:28 
Offline
Nowy

Dołączył(a): 26 lis 2015
Posty: 20
Pomógł: 0

wszystko działa, tylko jak LCD nie miałem podpiętego to funkcje dotyczące LCD się zrobić nie mogły,wywaliłem je i ruszyło



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 16 paź 2016, o 21:23 
Offline
Moderator
Avatar użytkownika

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

nariox napisał(a):
wszystko działa, tylko jak LCD nie miałem podpiętego to funkcje dotyczące LCD się zrobić nie mogły,wywaliłem je i ruszyło

Tak to bywa jak się pominie coś w książkach ;) widać nie poczytałeś o bibliotece LCD i jej konfiguracji ... a ja ZAWSZE używam pinu RW podłączonego do procka szczególnie w zestawach ATB

Gdy się przeczyta to wiadomo że nawet nie trzeba byłoby wywalać tylko przestawić w konfiguracji w pliku *.h use rw na zero

#define USE_RW 0

_________________
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: 17 paź 2016, o 18:10 
Offline
Nowy

Dołączył(a): 26 lis 2015
Posty: 20
Pomógł: 0

Racja,umkneło mi to, to nie mogło zadziałać !
Sam też zawsze idąc Twoim wzorem ,podpinam RW do pinu procesora;)

Natomiast żeby nie dodawać kolejnego tematu ,
czy użyty w pliku głównym bufor [100] , ulega opróżnianiu?
bo prześledziłem w miarę dokładnie cały program i wydaje mi się że nie...
Jeżeli planowałbym więcej danych to czy dobrym pomysłem byłoby w pętli while(1) dodać na końcu linijke,która wypełniałaby bufor np spacjami?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 paź 2016, o 18:45 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

nariox napisał(a):
Natomiast żeby nie dodawać kolejnego tematu ,
czy użyty w pliku głównym bufor [100] , ulega opróżnianiu?
bo prześledziłem w miarę dokładnie cały program i wydaje mi się że nie...
Jeżeli planowałbym więcej danych to czy dobrym pomysłem byłoby w pętli while(1) dodać na końcu linijke,która wypełniałaby bufor np spacjami?

A czy to nie jest przypadkiem bufor na c-string?
Jeśli tak to co da Ci wypełnienie go spacjami?
Prawdopodobnie to działa tak, że bufor jest przy obsłudze kolejnej transmisji napełniany od nowa.
A czytasz z niego tak długo aż nie napotkasz znaku NULL
Zastrzegam, że to tylko takie moje gdybanie ;)

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 paź 2016, o 20:23 
Offline
Moderator
Avatar użytkownika

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

Dokładnie ;) pomysł z wypełnianiem spacjami to hmmm delikatnie mówiąc chyba nieporozumienie ...

Bufor można bardzo szybko kasować czyli zerować np

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


i po zawodach ;)

_________________
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: 17 paź 2016, o 22:28 
Offline
Nowy

Dołączył(a): 26 lis 2015
Posty: 20
Pomógł: 0

Dzięki wielkie ! tego mi było trzeba!



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