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



Teraz jest 19 mar 2026, o 03:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 3 sie 2015, o 13:10 
Offline
Użytkownik

Dołączył(a): 20 maja 2015
Posty: 25
Pomógł: 0

Mam bilbioteki P.Mirka mkuart, oraz mój program na atmedze32, który robi swoje pomiary. Ponadto podpinam się standardem RS485 do PC, i zastanawia mnie jak programowo w C zrealizować taką komunikację w stylu master-slave. Tzn, powiedzmy, ze gdy z PC pójdzie zapytanie o ustalonej treści np. '123' ( np. ciąg takich znaków), to wtedy tylko atmega ma odpowiedzieć wysyłając wyniki swoich pomiarów.

Taki wstępny schemat programu jaki mam w głowie poniżej :
Może myślę kompletnie źle ? Proszę o wskazówki tudzież poprawę.


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



Jak to się ma do rzeczywistości ?
Pozdrawiam.



Ostatnio edytowano 4 sie 2015, o 22:01 przez michal93, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2015, o 13:34 
Offline
Nowy

Dołączył(a): 16 gru 2014
Posty: 8
Pomógł: 0

witam

Tworzę w ramach wprawki w programowaniu avr'ow małą bibliotekę do komunikacji modbus, przypuszczam ze byłoby to dla Ciebie rozwiązanie, na PC (win/linux) masz trochę oprogramowania do obsługi modbus'a więc chyba warto. Jak coś zapraszam na priv. Ewentualnie profi napisana biblioteka freemodbus min. dla ATMEG od 8 w górę .

pozdrawiam Jurek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2015, o 14:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sie 2013
Posty: 119
Lokalizacja: Cinisi
Pomógł: 12

również polecam modbusa, sam uruchamiałem go na atmedze32 oraz 128 z bibliotek które podał kolega wyżej (freemodbus).

_________________
sig off :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2015, o 17:27 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3230
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

michal93 napisał(a):
Taki wstępny schemat programu jaki mam w głowie poniżej :
Może myślę kompletnie źle ? Proszę o wskazówki tudzież poprawę.


Listingi wstawiamy w ten sposób: topic7402.html

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2015, o 21:44 
Offline
Użytkownik

Dołączył(a): 20 maja 2015
Posty: 25
Pomógł: 0

Pytam o prosty kod, do wysłania jednego bitu/bajtu przez ten rs. W książce Pana Mirka przeczytałem rozdział o tym, mam mkuart. Nie wciskajcie mi od razu modbusa, bo nie od razu Rzym zbudowano, najpierw chce zrobić prostą komunikację. Przeczytajce mój fragment kodu, to musi jakoś podobnie wyglądać



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2015, o 21:48 
Offline
Moderator
Avatar użytkownika

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

michal93 napisał(a):
if(odbior=='123'){

Kolega sobie sam przeczyta tę linię - która nawet nie chce się skompilować a wręcz krzyczy warningami kompilator. Jeśli robisz to "na sucho" te lepiej próbuj "na mokro" czyli na żywo - szybciej będziesz się uczył .... bo w tej jednej linijce pokazujesz, że na razie kompletnie nie rozumiesz jeszcze np co to są Stringi, dokładniej mówiąc C-Stringi - a bez tego panie ani rusz

więc zajrzyj do Bluebooka i zobacz czym się różni apostrof od cudzyłowia ? co umieszczamy w apostrofie a co w cudzysłowie? i dlaczego w C nie da się w ten sposób porównać stringa ? ... oraz poczytaj o funkcjach wbudowanych takich jak np strcmp() i podobnych

wtedy zrobi się jaśniej - 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: 4 sie 2015, o 22:00 
Offline
Użytkownik

Dołączył(a): 20 maja 2015
Posty: 25
Pomógł: 0

Panie Mirku, ja to pisałem z ręki , strcmp() porównuje stringi, takie rzeczy się poprawi. Chyba nie o to się rozchodzi, tylko o poprawne zgranie tego rs485 z programem w pętli...

Wiem, że to działać nie będzie, bo to musi być prawdziwe przerwanie. Coś w stylu SerialEvent() w Arduino ( funkcja sama sie wywołuje gdy coś przyjdzie na port szeregowy), a ja tutaj mam pętle która robi się 1 sekunde i na koncu sprawdza czy coś przyszło.(?) Dobrze rozumiem ?



Ostatnio edytowano 4 sie 2015, o 22:16 przez michal93, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2015, o 22:16 
Offline
Moderator
Avatar użytkownika

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

michal93 napisał(a):
. Chyba nie o to się rozchodzi,

Wiesz - tak się składa, że ja dobrze wiem o co się rozchodzi i powtórzę to jeszcze raz - zanim dalej zabrniesz w RS485 - poćwicz najpierw do końca RS232 ... bo i z tym dopiero zaczynasz/raczkujesz - a tu wkopujesz się jeszcze w kierowanie kierunkiem przepływu, którego nawet nie próbujesz uwzględniać w kodzie ...

Poza tym - właśnie ta niby drobnostka "odbiór i parsowanie stringów" ....

Nieprzypadkowo akurat ten temat zostawiłem na drugą książkę (Greenbooka) i to na ostatni rozdział .... A w Bluebooku poruszyłem tylko temat prawidłowego podejścia do buforowania cyklicznego o obsługi RS232 na przerwaniach ...

Ale spokojnie - nawet jeśli nie masz jeszcze GB to też można sobie - być może prostszymi metodami ale zrobić odbiór stringów - warto poćwiczyć - tyle, że ten twój kod z góry jest kompletnie odstający od rzeczywistości C, szczególnie gdy próbujesz stosować typy jak z C++

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


string - skąd taki typ w C ?

albo

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


jeszcze raz mówię - poćwicz na razie w ogóle obsługę stringów w C, a jeśli chcesz zobaczyć jak inni czytelnicy zmagali się i często z pozytywnym skutkiem z jakimiś prostymi formami odbioru stringów w C (jeszcze przed GB) to poszperaj na forum bo zamieszczali tu swoje kody ...

Za to później jak zdobędziesz GB to zobaczysz - jak powinno się do tego podchodzić i dlaczego wtedy jest to bardzo proste ...


Zresztą pooglądaj sobie kilka poradników moich o WIFI to zobaczysz jak wykorzystuję odbiór stringów i ich parsowanie w oparciu o zdarzenia i callbacki - jakie to może być przyjemne, proste - .... wtedy można się skupić na programowaniu a nie ciągłym pisaniu obsługi rs232/485

_________________
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 sie 2015, o 11:00 
Offline
Użytkownik

Dołączył(a): 20 maja 2015
Posty: 25
Pomógł: 0

Siła złego na jednego ... co teraz, jest dobrze ?

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: 6 sie 2015, o 10:00 
Offline
Użytkownik

Dołączył(a): 20 maja 2015
Posty: 25
Pomógł: 0

Podbijam, chyba kod nie jest zbyt rozbudowany, by ktoś mógł coś podpowiedzieć. Naprawiłem błędy zgodnie z sugestiami z poprzednich postów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2015, o 10:37 
Offline
Moderator
Avatar użytkownika

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

Wiesz ja bym może jakoś się odniósł do tego kodu ale ....

sorki KOMPLETNIE nie rozumiem o co chodzi ? tzn co to oznacza na przykład?
michal93 napisał(a):
Siła złego na jednego ... co teraz, jest dobrze ?


albo

michal93 napisał(a):
Podbijam,


czyli co ? działa u ciebie czy nie działa ? - jeśli będziesz zadawał bardziej jasne pytania na forum, to pewnie więcej osób coś podpowie - bo chyba jak widać po ilościach odpowiedzi - nie tylko ja mam problem ze zrozumieniem

_________________
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: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO