Jak przyjdą wszystkie 4 ramki to w terminalu widać to tak : http://obrazki.elektroda.pl/9423490600_1... Oczywiście jak przyjdzie jedna to w terminalu jest tylko jedna linia i tak samo dla 2 i 3 ramek.
Printbin Do odbieranie zastosuj przerwanie od uarta.
Jeśli jest możliwość wykorzystania pinów uC dodałbym kontrole przepływu przez port sterując sygnały RTS/CTS portu COM co znacznie poprawi wysyłanie i odbieranie z portu bez potrzeby stosowania znaku na koncu wysyłanej ramki ;)
Pomijając tragiczny kod zastanawiam się po co wysyłasz milion znaków, przecież w jednej ramce rs możesz wsadzić 255 różnych znaków, na tak prostą rzecz nie potrzebujesz takich ramek.
dim urx_bufor(5) as byte dim urx_licznik as byte dim urx_odebrano as bit ... urx_licznik=1 'to jest potrzebne dla bascom'a bo tablice zaczynaja sie od 1 a nie 0 enable interrupts ... przerwanie_urx: if urx_licznik<5 then urx_bufor(urx_licznik)=udr incr urx_licznik end if if udr=13 then set urx_odebrano 'odebano ENTER if udr='T'...
-w innych przypadkach powinna być usunięta. Nie. Właśnie przez to że usuwasz całą masz problem z odbieraniem. Przykładowo przyjdą dane: &HDD &H10 &H01 &Hxx &Hxx &Hxx &Hxx &Hxx &H90 &H10 &H01 &Hyy &Hyy &Hyy &Hyy &Hyy &H90 Czyli jakiś śmieć, i dwie poprawne ramki. Ty sprawdzisz że pierwszy bajty to nie są &H10 &H01 i ostatni (w sensie ostatni w ramce,...
Po prostu nie możesz korzystać z instrukcji Input tylko z instrukcji np. Inkey i odbierać 128 bajtów o dowolnej zawartości (nawet bajtów zerowych) Po odebraniu 128 bajtów sprawdzić sumę kontrolną, tak jak pisał kolega mirekk36. Jeśli odebrałeś wysłasz ack spowrotem np. z sumą crc ramki Instrukcja Input się nie nadaje do tego celu. Tylko odbieranie za...
U mnie to działa na tej zasadzie ze procesor sobie cos tam wykonuje, jeśli nadejdą jakieś dane RFM12b generuje przerwanie i mikrokontroler odbiera cała ramkę. W tym czasie procesor nie może zajmować się innymi rzeczami.
Dane odbieraj w przerwaniu. Jak natrafisz na znaki "AT" to rozpoczynaj zliczanie 154 bajtów po czym ustawiaj flagę "Data_ready" czy jakąś taką i znowu czekaj na znaki "AT". A jak chcesz odbierać dane o rożnych długościach to czekaj na znaki "AT" i ustawiaj flagę po ich odebraniu. Tyle że odebranie poprzedniej ramki będzie wymagało pojawienia się początku...
W takim razie jak inaczej wykryć koniec ramki skoro na końcu zawsze jest co innego? A procedurę zapisu na kartę jak mam szybciej wykonać? Nadajnik wysyła ramki co sekundę i nie mam na to wpływu. A jak wykryć koniec ramki po znaku CR? Zrobiłem jak piszesz i dałem oczekiwanie na znak "$". Jest trochę lepiej ale i tak są błędne ramki.
Zaproponowane zmiany nic nie zmieniły. Jak była obsługa 12bitów to procesor i tak rozpoznawał jaka to ramka za pomocą długości bitu startowego i dalej już "nie obsługiwał" części odpowiedzialnej za tą ramkę 12bit. Sprawdziłem i odbiera normalnie zawsze pierwszą ramkę, załączam ekrany oscyloskopu, drugi kanał jest wyzwalany flagą po odebranej ramce...
Witam Właśnie dla tego żeby długość ciągów w ramce była taka sama to wysyłam to jako HEX. Deklarując zmienną jako np. Byte zawsze dane w HEX bandą zawierały się w zakresie 00-FF. I tak dla przykładu: -dla 5 stopni w HEX daje 05 -dla 25 stopni w HEX daje 19 -dla 125 stopni w HEX daje 7D Jak z tego widać ramka nie ma prawa się rozjechać. Wysyłam i odbieram...
Może i tak. Ale na moje oko i tak kombinujecie. Ja od początków jak stosuję przesyłanie danych przez UARTa to stosuję jeden algorytm który wymyśliłem jak tylko zacząłem się zajmować programowaniem, i okazał się na tyle skuteczny że korzystam z niego od kilku lat i nie zmieniłem od tamtej pory w nim nic. Wysyłam: 23, Dana, Dana, Dana, Dana, ..., Dana,...
chcę nawiązać komunikację z urządzeniem które wysyła i odbiera dane na jednej linii protokół standardowy jak w rs232 użyłem poleceń SERIN i SEROUT w bascomie ale po wysłaniu ramki odbiera jakieś śmieci podkreślam że transmisja podsłuchiwana była w terminalu i urzadzenie odpowiada poprawnie , ale procesor odbiera śmieci .Czy trzeba stosować jakiś bufor...
Ma ktoś jakieś pomysły jak to przeskoczyć? Zainstalować najnowszą wersje BASCOM'a (2.0.7.6.001) :). Tak z ciekawości uruchomiłem program na swoim zestawie, dane odbierał terminal. Za pierwszym razem skompilowałem program wersją 2.0.7.5.003, program wysyłał jedną ramkę (printbin) i stanął. Przy drugiej próbie użyłem BASCOM'a 2.0.7.6.001 i ramki zostały...
Let me google it for you: https://www.google.pl/search?q=uart+odbi...
To nie lepiej wysyłać z 3 LED, 3 kody RC5 i odbierać je 3 czujnikami?? LEDy podłączasz wtedy do 1 tranzystora a kody odbierasz poszczególnymi czujnikami. Układ jest wtedy nie wrażliwy na inne nadajniki IR ,takie jak np PILOTY. hyhyhy teraz to kolega zaszalał ;) - 3 diody nadawcze i aż 3 czujniki ;) szok. Toż już by można było sobie w głowie pomysł...
Nie wiem na czym polega problem kolegi. Poza tym o porcie RS232 mówimy tylko po stronie komputera, koledze chodzi jak mniemam o to, że z komputera są wysyłane dane do procesora i ten powinien je odbierać. Zatem jak kolega napisał po pierwsze należy użyć bufora (dostępny z poziomu BASCOM - poszukaj w helpie) a potem w danym miejscu programu sprawdzać...
Wartość kwarców można wywnioskować z kodu. Oba to 8MHz. Czy duże zmiany w kodzie trzeba by było wprowadzić, żeby przesyłać dane z 2-3 czujników DS? Nie, trzeba by dodać pole w ramce informujące odbiornik z którego czujnika jest odbierany aktualny pomiar.
Ten procesor ma sprzętowy port szeregowy więc zapewne "wyposażony" został w mechanizmy które czuwają nad wysyłanymi i odbieranymi danymi, a co za tym idzie zgłaszają odpowiednie przerwania w momencie odebrania/wysłania ramki danych.
Witam, drogich forumowiczów. Mam problem z komunikacją kilku urządzeń w sieci rs485. A tak prawdę mówiąc to z komunikacją pomiedzy dwoma, jednym "master" i jednym "slave". Normalnie staram się zadawać pytania w ostateczności na forum Elektroda, ale po prawie 3 tygodniach siedzenia przy problemie, przeglądaniu masy poradników i postów związanych z rs485...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na http://www.elektroda.pl/rtvforum/topic20... ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem "ruszył"...
no ale co ten przekręt ma na celu bo nie rozumiem ? toż za jego pomocą chyba nie da rady nic nadawać ???? tylko chyba odbierać i ew przełączać kierunek transcieverka .... chociaż i tak w hmmm troszkę nieszczęśliwy sposób to przełączanie będzie robione i czy wyjdzie w ogóle. Przecież gdy na Tx poleci ramka z różnymi wartościami bitów to nadajnik będzie...
PIsałem wyżej, slave'y mogą odbierać spokojnie 3 bajty, analizować je, przygotować do wysłania całą ramkę. Bufor odbiorczy zrobisz tak duży , na ile starczy ramuw .
Witam! Koledzy mam takie pytanie. Jak najlepiej wysyłać przykładową ramkę 5AA50480030003 w bascom-ie.Obecnie robię to tak: Print Chr(&H5A); Print Chr(&HA5); Print Chr(&H04); Print Chr(&H80); Print Chr(&H03); Print Chr(&H00); Print Chr(&H03); Ramka jest wysyłana prawidłowo, urządzenie je odbiera. Czy jest jakiś sposób, aby to zoptymalizować, ponieważ...
Dzięki lecz - NIE ZDA TO EGZAMINU Ja odbieram dane z przedziału 0..255 Jak zastosuje twoje rozwiązanie to jak wystąpi mi w ramce danych znak 13 to program wykryje że jest koniec transmisji - przerabiałem to Bascom jedynym sprawdzonym i profesjonalnym odbiorem danych jest mój zapis reszta to dla amatorów "zapal zgaś diodę" - Bez obrazy! Lecz to doświadczenie
Koncepcja jest dobra, tylko szczegóły złe. W odbiorniku: 1. W przerwaniu odbieraj tylko jeden znak a nie dwa. 2. Nie używaj w przerwaniu i pętli głównej tych samych zmiennych dr1 i dr2 bo nie wiesz kiedy dane przyjdą. Albo daj jakiś znacznik. Zacznij od opracowania jakiegoś prostego protokołu (ramki) bo może się zdarzyć (a może nie) że nie otrzymasz...
UART sprzętowy odbiera ramki z modułu GPS ( Tx modułu do Rx AtMega32 ) i to działa. Działa do momentu gdy włączę UART sprzętowy ?
A w jakim standardzie dane wysyła gps? Odbieranie danych ja robiłem na przerwaniach od uartu. Jeżeli gps wysyła dane w NAMEA to jak przyjdzie przerwanie to sprawdzamy czy odebrał znak '$' jeżeli tak to mamy początek ramki, potem sprawdzamy co to za ramka. Jeżeli nas interesuje ta ramka, to ładujemy ją do jakiegoś bufora i potem dopiero obrabiamy.
Twój program ma różne pętle Do...Loop_Until w których czeka na określone znaki. Jak one nie przyjdą to program utknie w tych pętlach. Najprościej się przed tym zabezpieczyć, i jednocześnie uprościć program, robiąc tak żeby odebranie entera resetowało odbieranie ramki. I dopiero po odebraniu tego entera to co się odebrało do bufora uznawać za ramkę....
Pierwsze od czego powinieneś zacząć to zbudowanie sobie odpowiedniego analizatora, który będzie sprawdzał poprawność odbieranych informacji i dekodował to co dostaje. Dopóki nie nauczysz się odbierać i dekodować ramek o wysyłaniu możesz zapomnieć . Jeśli chcesz z bascomem dobrnąć do jakiegoś celu musisz się skupić na słuchaniu tego co się dzieje na...
Komunikuje sie z poziomu terminala lub własnej aplikacji na PC z własnej konstrukcji sterowniczkiem załączającym przekaźniki na Atmedze 126. Jeśli wpisze do Ubrr i Ucsrc wartości ustawiające np 9600 bitów na sekundę to transmisja po rs232 działa, ale jeśli wprowadzę np. dla 2400 i innych czy nawet zmienię data bits 8 na nap 7 przy 9600 bitów na sekundę...
Na 10000% podanie napięcia 5,1V nie mogło uszkodzić tych modułów ;) A problem jest prozaiczny. Przesyłanie danych bezpośrednio poprzez RS232 to nieporozumienie niestety nieporozumienie i mało kto o tym wie i pisze. Co gorsza, na allegro ludziska sprzedają tego typu moduły radiowe podając w przykładach właśnie chore aplikacje narysowane własnoręcznie...
Witam. Temat CANa wrócił:) Teraz zastanawiam się, czy można zrobić coś takiego, że układ będzie odbierał przychodzące ramki, a następnie wysyłał je dalej, oprócz jednej konkretnej, którą zablokuje? Układ będzie musiał być wpięty w sieć CAN w taki sposób, aby ją przerywał (między urządzeniem docelowym, a resztą sieci). Prawdopodobnie będzie trzeba podpiąć...
Posiada też I2C i tym bym się zainteresował: Piny 8 i 9 to według rozpiski z datasheeta SDA i SCL (wtedy Vss i Vdd podpinasz pod 6 i 7 - tyle wynika z mojego pobieżnego spojrzenia na dokument). W BASCOM, z tego co pamiętam, odbieranie z I2C jest realizowane poleceniem I2CRECEIVE - otwierasz helpa i czytasz. Powodzenia :) A ten digital output przypomina...
Taa, ciekawe, który _cast? Tutaj akurat nie ma i nie będzie, żadnego nadzorowania, bo trzeba przekształcić tablicę bajtów na strukturę. Rzutowanie ma tą zaletę, że nie trzeba niczego kopiować. Hmmm masz rację po głębszej analizie nadaje się chyba do tego tylko reinterpret_cast? Co prawda nic nie będzie nadzorował ale łatwiej go odnaleźć w programie...
Powiedz mi dlaczego - skoro korzystasz z Bytematch to dajesz parametr ALL ??? a przecież piszesz że odbierasz swoją "ramkę danych" zakończoną znakiem chr(13)... I znowu mógłbym się rozpisać za długo jak warto podchodzić do transmisji danych przez RS232, że warto wykorzystać własnie znaki końca linii do wyłapywania zdarzeń, że warto wtedy ustawiać flagę...
Nie mam zdefiniowanej ramki. Odbieram tylko dane instrukcją input i za pomocą if porównuję czy odebrana dana jest zgodna. W jaki sposób mogę sprawdzić jakiego typu są dane odebrane z uarta?? Jakimś poleceniem??
Hehe, stary post. U mnie CAN już śmiga i to w Bascomie kod pisany. Nie mogłem co prawda zrobić filtrowania ramek sprzętowego (przez MCP), ale zrobiłem programowo. Ramka dociera do wszystkich, ale na 1-wszym bajcie zawiera adres i odpowiada tylko ten terminal, któremu adres się zgadza i czyta pozostałe dane.
If Ucsra.4 = 0 Then ZbeeGin , dzięki za podpowiedź. Jeszcze mam jedno pytanie. W UART przy odebraniu 1-szego znaku jest generowane przerwanie Urxc. Mam coś takiego (okrojone dla idei): On Urxc Odbierz ... Odbierz: Inputbin Adr1 , Adr2 , Adr3 , Adr4 , Adr5 , Adr6 , Adr7 Return Czyli wychodzi na to, że Inputbin odbiera przychodzące bity, co powoduje...
witam . meczę sie już jakiś czas z odebraniem danych z modułu czytnika RFID. wysyła on ramkę ttl po zbliżeniu karty do czytnika w takiej postaci: RS232 TTL (ramka danych 0xff,x,x,x,x,x,crc8 ), x-dane karty oczywiście w Bascomie. próbowałem już z poleceniami Waitkey() inkey() czy sprawdzaniem bufora Uart Ischarwaiting(). $baud = 9600 oczywiście całość...
hmm ja w bascomie akurat nie programuję, ale tu występuje takie zjawisko bo dane które wysyłasz są buforowane i "wylatują" z PCta praktycznie jedna po drugiej tzn każda w oddzielnej ramce. Twój procek to odbiera też oczywiście po kolei bo inaczej być nie może. A to, że ty w bascomie widzisz je razem to może być spowodowane, że być może masz zdeklarowaną...
Na prawdę jeszcze czegoś takiego to nie widziałem, żeby : 1. nie skorzystać ze sprzętowego UARTA - gotowca w bascomie COM1 to niestety sprzętowy port komunikacyjny. :P Tak samo jak COM2. Choć z nim to już trzeba nieco pokombinować z OPEN i kanałami by coś przez niego przesłać. 2. nie skorzystać z pięknych buforów cyklicznych - gotowca w bascomie Przy...
Witam, pokombinowałem i wreszcie działa. Niekiedy nie odbiera dobrze, ale to pewnie wynika z tego, że sygnał może być odbity i nie dociera cała ramka. [syntax=bascom]$regfile = "m16def.dat" $crystal = 8000000 $baud = 9600 Config Int0 = Falling On Int0 Rc5 Config Rc5 = Pind.2 , Wait = 12000 Dim Address As Byte Dim Command As Byte Dim Odebrano As Bit...
Gdzie PDU ? Przyjrzyj się ramce jeszcze raz: +CMGR: <stat>,[<alpha>],<... Ano w następnej linijce, bo masz zwracane <CR><LF> Ponadto nie filtrujesz znaków <LF> co może ci nieco namieszać. Proponuję odbierać przy pomocy Input i bytematch tak jak ja to zrobiłem w moim projekcie,...
Witajcie, moją przygodę z STM32 zacząłem stosunkowo niedawno, praktycznie od samego początku staram się stworzyć "protokół" do bezawaryjnej komunikacji po USARcie, który wykorzystany będzie do transmisji danych z małego robota typu LineFollower. Nie mam większej wiedzy, ani doświadczenia z tej dziedziny. Stworzyłem trochę kodu na podstawie własnych...
Szanowni koledzy! Czujnik ozonu wysyła po UART taką ramkę FF 2A 04 00 00 3E 27 10 5D z czego FF to bajt startu 2A - rodzaj gazu (03) 00 - cyfry dziesiętne ( nie istotne) 00 - stężenie gazu - bajt starszy 3E - stężenie gazu bat młodszy reszta nie istotna (choć znana) Jak w Bascom odebrać te dane do tablicy zmiennych? Zwykle odbierałem cyfry dziesiętne...
Witam. Podobny projekt robię w Bascomie - powiadomienie GSM ze sterowaniem poprzes sygnał dzwonienia (identyfiakacja numeru przychodzącego) i komende sms. Wykorzystuje do tego Nokię 5110 i transmisje po F-Bus (M-bus jakoś mi nie ruszył). W chwili obecnej moge wysłać komunikat sms z procka i tak samo zadzwonić na wybrany numer. Niedawno zacząłem to projektować...
Petros :arrow: :idea: "w obsłudze zewnętrznego przerwania 1 napisałem kod który 256 razy co 100us sprawdza wejście PD3" ... ja na c też się mało znam jak narazie bo piszę tylko w asm lub bascom ale z tego co kolega pokazał - tą swoją procedurę - hmmm rodzi się szereg pytań, jak choćby: - a co z synchronizacją odbieranych kodów? gdzie jest wyłapanie...
Dziekuję za wszystkie dotąd udzielone mi porady. Jeśli chodzi o transmisję binarną printbin, inputbin to próbowałem wyszło super przede wszystkim zmniejsza liczbę byte ramki chodzi mi o to, że gdy wysyłam parametr do pwm np. 255 to używam 3 znaków ASCII czyli 3 byte a binarnie wyśle byte 255 i to tyle ale w transmisji nie mogłem korzystać z przerwania...
Chciałbym sie poradzić jak napisać w Bascomie, oprogramowanie do urzadzenia, które musi coś tam wyświetlać, musi obsługiwać klawiaturę, wysyłać coś tam po I2C oraz na bieżąco musi odbierać ramki z UARTA0. Chodzi o to że z komputera wysyłam 64bajty przez RS232 Atmega to odbiera i dokonuje odpowiednich nastaw w urządzeniu. Jednocześnie musi działać klawiatura...
Cześć! Wychowany na pollingu i AVRach , proszę o pomoc. Odbieram dane UART , 19200 8N1. Schemat ramki jest taki: XX A3 YY ZZ NN Paczka zawiera 8 takich ramek , i lecą one bez przerwy. ostatni bajt to suma kontrolna, prosta suma poprzednich bajtów. drugi bajt to zawsze 0xA3. Problemów co najmniej mam kilka. jak myślicie: Odebrać 40 bajtów, odszukać pierwsze...
Ramkę złożoną z 32 bajtów odbieram w poniższy sposób: Kod: If Ischarwaiting() = 1 Then Inputbin Mess_1 , Mess_2 , Mess_3 , Mess_4 , M0_1 , M0_2 , M0_3 , M0_4 , M1_1 , M1_2 , M1_3 , M1_4 , M2_1 , M2_2 , M2_3 , M2_4 , M3_1 , M3_2 , M3_3 , M3_4 , M4_1 , M4_2 , M4_3 , M4_4 , Chk_1 , Chk_2 , Chk_3 , Suma_1 , Suma_2 , Koniec_1 , Koniec_2 , Koniec_3 , 32 End...
Obsługa UART jest przerywana TIMEREM i dlatego gubi znaki. Zrób odbiór UARTU na przerwaniach, odbieraj w nim tylko pojedynczy znak i ładuj go do bufora (nie czekaj w tej funcji,aż odbierzesz wszystkie znaki), a po odebraniu końcowego znaku ustawiasz flagę, że skończył. I w pętli głównej dekodujesz sobie na spokojnie tą ramkę. Popróbuj może jeszcze ze...
Najlepiej wysyłaj określoną ramkę, np.: 0xFF hou minu sek t t1 (odpowiedni typ, jeśli nie jest 8 bitowy to go musisz "pociąć") 0xFF Odbierasz do tablicy w której elementy się przesuwają i co odbiór sprawdzasz czy pierwsza odebrana i 7. odebrana są 0xFF i w takim wypadku przepisujesz odpowiednie elementy tablicy do odpowiednich zmiennych. Da się to zrobic...
Witam. Budujesz sobie ramkę która składa się z kilku bajtów danych i na przykład jeden z tych bajtów przyjmuje wartość 1 - znaczy A; 2 - znaczy B i tak dalej. kolejny bajt jest bajtem danych w którym przesyłasz wiadomość czyli to co ma być zapisane pod A,B, .... Mikrokontroler który odbiera dane sprawdza najpierw gdzie ma zapisać daną czy do A czy do...
Witam, Aby nie dochodziło do błędów związanych z odbiorem mniejszej czy większej liczby bajtów musisz zastosować jeden myk. Wiedząc jaki czas jest pomiędzy nadawaniem poszczególnych bajtów oraz jaki czas jest pomiędzy poszczególnymi ramkami złożonymi z 7 bajtów musisz podczas odbioru 1 bajtu włączyć timer który złogi przerwanie po czasie który jest...
Witam, Muszę przesyłać do Atmegi przez UART daną 4 bajtową w formie ASCII. Trzeci i czwarty bajt może przy niektórych ramkach być z przedziału 1..255 jako liczba Byte. Myślałem żeby całość odbierać przerwaniem: Config Serialin = Buffered , Size = 22 , Bytematch = 13 A w pętli głównej Input'em. Problem jest jednak z tym bajtem liczbowym. W przypadku...
Chodzi o to że zarówno wartość kodu jak i jego adres przyjmują odpowiednio wartości 25 i 1 i dzieje się tak nawet jak nie wyśle nic z pilota. Kiedy przycisnę przycisk na pilocie to proc odbiera te sygnały ciągle i pokazuje mi się na lcd:" kod 25 adres 1" (czasem sa inne wartości niezalezne od kodu przycisku). Czy ktoś może miał podobny problem? Dodam...
Wstęp: Przedstawiam taki skromny raczej projekt, ale dla mnie o sporym znaczeniu. Celem projekty było umożliwienie uC z rodziny avr, pracy w sieci Lan a w zasadzie zbudowanie takiego oprogramowania dla uC, które przypomina działaniem serwer http. Aby było to możliwe, sam avr-ek nie wystarczy. Trzeba go uzbroić w jakiś moduł sieciowy. Zazwyczaj opieram...
Wygląda to tak, jakby pakiet z ENC'a dochodził do karty sieciowej, ale utykał gdzieś na drodze KARTA_SIECIOWA->PROGRAM. Co może być przyczyną takiego zachowania? Może to będzie głupie pytanie :), a próbowałeś wyłączyć firewalla? EDIT: ------------------- Hmmm... dziwne mam ten sam problem :). Też jestem w trakcie pisania swojego mikrostosu. Do komunikacji...
Witam, od jakiegoś czasu opracowuję urządzenia komunikujące się po RS485 w protokole PELCO-D. Urządzenia komunikują się albo jedno albo dwukierunkowo-tutaj to nie istotne... Wszystko działa wyśmienicie i komunikuje się bez najmniejszego błędu gdy nadaje jedno z urządzeń. Urządzenie to nadajnik i odbiornik. Gdy nadają 2 nadajniki jednocześnie (jednocześnie...
OK Dzięki! Mam taki interfejs ze posiadam X modułów na których są przekaźniki i są podłączone do szyny danych (RS485) i chce sterować je poprzez komputer. W Delphi wysyłam jednym ciągiem takie komendy jak Adres = 0-255 Komenda = 0=255 Port = 0-255 Wartosc = 0-255 Czyli moja ramka danych z komputera przykładowo wygląda tak: RS_Send ('ADCS'); Wysyłam...
Witam Starałem się wyjaśnić platforma AVR lub zadania jaki ma wykonać NIE JEST TAK WAŻNE jak zorganizowanie komunikacji na RS232 za pomocą paczek HEX! Mogę wykorzystać dowolną większą kość AT! AT90s2313 Akurat tą kość mam gotową do pracy i kompletną do komunikacji na RS232. Czy jest możliwe zorganizowanie takiej komunikacji.? Potem wykona zadania......
W Bascom'ie jest biblioteka mmc.lib i nigdzie nie jest opisana jej konfiguracja jak i jej sposób użycia. Czy wiecie jak wysyłać i odbierać bajty przy użyciu tej biblioteki? Dodano po 3 Dokopałem się do czegoś takiego i co dalej....... $regfile = "m128def.dat" $crystal = 14745600 $baud = 115200 $hwstack = 150 'wartosc stosu $swstack = 150 'wartosc...
Z praktycznego punktu widzenia, musisz zastosować mikrokontroler na tyle szybki i z dużym RAMem, aby móc przechwycić kompletną sekwencję do pamięci "sampla", a następnie zakładając konkretną podziałkę czasową (clock recovery) i format , rozkodować dane i zapamiętać gotowy kod. W przypadku, gdy pilot nadaje niezgodnie z udokumentowanymi standardami (RC5,RC6,SIRC),...
http://obrazki.elektroda.pl/2943283900_1... Witam wszystkich, przedstawiam ciekawy twór mojego autorstwa oraz kolegi. Mieliśmy zaproponować coś ciekawego, innowacyjnego, a zarazem prostego na zaliczenie. Mając, jak to na studiach, strasznie mało czasu na całe przedsięwzięcie. Zaczęliśmy poszukiwania na forum, z którego teraz my się...
Witam! Usilnie próbuje opracowąć protokół komunikacji miedzy wieloma węzłami w sieci RS485 multimaster. Ramka wyglada tak: 1 bajt - długosć ramki 2 bajty - adres odbiorcy (word) 2 bajty - adres nadawcy (word) x bajtów - dane właściwie 1 bajt suma kontrolna z wszystkich poprzednich Transmisja odbywa się na prędkosci 19200bps przy użyciu transcieverów...
Witam Tak jak w temacie mam napisałem program w bascomie który ma za zadanie zapalać cztery diody led po odebraniu po RS232 cyfr od 1-4 i chodzi to bez problemu ,ale teraz gdy uczę się języka C postanowiłem ten sam program przenieść na C i już nie jest tak dobrze.Objaw jest taki gdy wyśle 1-Zapalają się i gasną diody "STROBO I KULA" gdy 2-Tak sama 3-Też...
Witam, Mam mały problem z uzyskaniem danych z ramek odebranych po RS , chcę zrobić to za pomocą string ... ale zachowaniem struktury ramek, które wyglądają tak ramka 1: [syntax=vbnet] +CMTI: "SM",23 [/syntax] ramka 2 [syntax=vbnet] +CMGR: "REC READ", "+48123456789 ", " ", "17/03/25,17:04:26+04" STATUS [/syntax] napisałem mały program do wysyłania to...
W tej wersji ciężko będzie Ci pomóc. Skoro program się rozbudowuje to nie ma co brnąć w rozwiązania z pętlami. I pora to zrobić porządnie czyli: 1. Na przerwaniach 2. Na ramce danych i dodatkowo np. z sumą kontrolną. Mimo że raczej tego nie pochwalam, to poratuję gotowcem bo akurat go mam :D Kod odbiornika: [syntax=basic4gl] Dim Buffer_in(8) As Byte...
według mnie 'Config ..' to jest polecenie dla kompilatora tak jak w asmie .equ albo coś w tym stylu... ciężko dla jednej procedury ustalić 2-ie różne metody działania... raz na porcie tym a raz na tym... żeby to szło adresować porty za pomocą rejestrów :( idzie tylko za pomocą stałej (przezco wielokrotne config niedziała) albo za pomocą wskaźników X,Y...
Witam, posiadam dwie atmegi8 sprzęgnięte ze sobą komunikacja za pomocą UART. Jedna atmega będzie zbierać informację z czujników i poprzez UART przesyłać bajty danych do drugiej atmegi której zadaniem jest wyświetlanie tych wartości na wyświetlaczu graficznym. Moja ramka danych składa się z dwóch bajtów, pierwszy z nich jest to bajt "adresowy" który...
Witam! Usilnie próbuje opracowąć protokół komunikacji miedzy wieloma węzłami w sieci RS485 multimaster. Węzły zbudowane są za pomocą AtMega8. Ramka wyglada tak: 1 bajt - długosć ramki 2 bajty - adres odbiorcy (word) 2 bajty - adres nadawcy (word) x bajtów - dane właściwie 1 bajt suma kontrolna z wszystkich poprzednich Transmisja odbywa się na prędkosci...
Witam Ostatnio kupiłem sobie standardowy moduł ethernetowy oparty na tymże scalaku. Posiada wbudowane transformatory i inne tego typu rzeczy, ogólnie jest wyposażony we wszystko czego potrzeba. Już miałem uruchamiać całość na ATmega88, bo na Tuxgraphics jest cały artykuł wraz ze źródłami o tym jak to odpalić na tym mikrokontrolerze, ale znalazłem poradnik...
Witam, buduje system pomiarowy składający się z 5 płytek. Pierwszy to master który nawiązuje (startuje) transmisję na szynie danych, a pobrane od slave-ów dane wysyła do PC po RS232. Pozostałe moduły(slave) to układy pomiarowe i wykonawcze. Płytka z masterem będzie wyposażona w ATmega16, a moduły w Atmega8. Master ma wysyłać ramkę z danymi(1bajt) (rozkaz...
Ja nie chcę zapisywać w eeprom nadlatujących SMSów tylko fragmenty ramki PDU. które będę wysyłał. A chcę je tam zapisać by mieć możliwość szybkiej zmiany, kiedy sobie napiszę program do zmiany zawartości eeprom. Staram się napisać program tak elastycznie, by zmiana danych w eeprom, była przez program w uC "do przełknięcia, Czyli jeśli nawet zmienię...
witam. w związku z zapytaniami na meila odpowiem na ile mogę tu(być może komuś się to przyda. Jesli gdzies walnołem jakis bład prosze o wybaczenie:) już dawno projekt zakonczony a nie chce mi się na nowo teraz wszystkiego instalować i sprawdzac. na początku zanim zacząłem co kolwiek pisać podpatrzyłem terminalem (RTU) przes rs232 co tak naprawdę wysyła...
Co do kodu, to wstawię coś wieczorem, jak wrócę z pracy. Jeśli chodzi o obsługę RFM12 to mam z tego wątku [url=http://www.elektroda.pl/rtvforum/to... z przed ostatniej strony ( jest tam też zresztą kilka moich postów ), natomiast nie ma tam ważnej linijki kodu, który odblokowywał kontroler w czasie pomiędzy odbiorem danych, a który...
witam. Mecze się już kolejną noc z zrozumieniem jak odczytywana jest ramka sms w postaci pdu(jej konwersja na tekst). są niby gotowce na elektrodzie ale chciałem to zrozumieć a nie tylko wklepać. dla przykładu odbieram taką wiadomość: 07918497908952F0040B918497428XXXFX000001... tyle co udało mi się rozszyfrować : 07 - SMCS 91 - format...
Witam. Mam problem z wyświetlaniem danych odebranych z przez UART na ATmega8. Dane które są wysyłane wyglądają tak: ASCII .32001152DFAE. Kropki oznaczają początek i koniec tekstu W terminalu dane odbierane są poprawnie. Problem jest w napisanym programie. Chce wyświetlać 12 z 14 znaków przesyłanych poprzez UART, nie interesuje mnie pierwszy i ostatni...
http://obrazki.elektroda.pl/4164965000_1... Witam. Od dłuższego czasu interesuję się technologią RFID i dziś chciałem zaprezentować rozwinięcie mojej dawnej konstrukcji mianowicie czytnik kart RFID ze zintegrowaną anteną na płytce PCB. Ze względu na skomplikowaną konstrukcję anteny (niewielkie odległości między ścieżkami) płytka została...
http://obrazki.elektroda.pl/9418966600_1... Witam wszystkich na forum. Jest to moje pierwsze publikowane DIY. Słowo wstępu… Projekt powstał z jednego, bardzo ważnego powodu: bo bardzo chciałem coś takiego mieć! Jest to układ odczytujący kod karty poprzez interface EM4095 z anteną, dekoduje, sprawdza i wysyła poprzez port szeregowy....
http://obrazki.elektroda.net/8_122877286... Komunikacja miedzy dwoma mikroprocesorami AVR oparta na zmodyfikowanym protokole MODBUS RTU zrealizowana na interfejsie RS422 (full duplex). Witam wszystkich. To pierwsza publikacja jednego z moich samodzielnie zrealizowanych projektów (a kilka ich było). Układ (sterownik) docelowo ma służyć do kontroli...
Źle podchodzisz do tematu. Dopóki są to jakieś tylko zabawy w budowę termometru to sobie można pozwalać na takie błędy. Kiedy jednak od pomiaru takiej temperatury ma już zależeć praca jakiegoś urządzenia to powinno się do sprawy podejść poważniej. Po pierwsze ten uC ma trzy Timery. Może mierzyć dowolne czasy. Czy na pewno jest Ci potrzebne przerwanie...
Ciekawą sprawą jest też to, że mój odbiornik IR (TSOP4836) jest normalnie zwarty (w stanie logicznym 1), mimo to przerwanie w trybie Rising działa poprawnie. Nie ma czegoś takiego jak "zwarty" :) tak poprostu działa prawie każdy odbiornik IR, w stanie spoczynku, jak nic nie jest nadawane, ma stan wysoki H czyli +5V, jeśli nadajnik (pilot) nadaje nośną...
Należy "podpisać" przesyłane zmienne tak by mikrokontroler jednoznacznie wiedział z którą ze swoich zmiennych skojarzyć ma przesłaną wartość i w niej ją zapisać. Wiele urządzeń ma swoje własne sekwencje bajtów po których własnie mikrokontroler jest w stanie określić co nadeszło. Takie sekwencje nazywają się "ramką". Na przykład System NMEA 0183 z odbiorników...
No cóż - każdy początkujący ma problem z transmisją RS485. Nie dlatego, że nie rozumie transmisji. Dlatego, że pojawiają się różne stany związane z konkretnym zachowaniem się układów. Problemy te można zdefiniować dopiero po szczegółowej analizie oscyloskopowej stanów linii transmisyjnych i linii TxD i RxD. Spróbuję pomóc, ale nie wiem, czy będziesz...
Jak bym chciał żeby mi ktoś pomógł to włożyłbym minimum wysiłku by przygotować kod na który można spojrzeć bądź skompilować. Nie musi być cały, ale taki który daje możliwość powtórzenia występującego problemu. Chcesz odbierać dane z UART a masz w pętli Waitms. Myślisz że te dane na Ciebie poczekają? Przy tak znikomej ilości informacji jakie zapodałeś...
Pisząc program stanąłem przed problemem odbioru kodu RC5 z pilota ale z użyciem przerwania. O ile w BASCOM 8051 GETRC5 w przerwaniu działa doskonale, to w BASCOM AVR jest to kompletna porażka. Wadą Bascomowej funkcji GETRC5 jest: 1) Dziadowskie działanie w przerwaniu (niby działa ale traci pierwszy pakiet z pilota) 2) Zastosowanie jej w programie powoduje...
http://obrazki.elektroda.net/76_12349093... Włącznik komputera zintegrowany z igorplug Ostatnio postanowiłem zmontować sobie komputer pracujący w roli "Media Center". Jako zdalne sterowanie wykorzystałem odbiornik igorplug ( http://obrazki.elektroda.net/86_12349099... Wszystko działało bardzo pięknie - pojawił się tylko jeden problem -...
Przy takim kodzie: Attiny2313 - temu raczej nic nie dolega - odbiera i wysyła: $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 9600 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5 '********************* Config Serialin = Buffered , Size = 10 Enable Interrupts '********************* Konfiguracja wejść i wyjść...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
Bez problemu mozna zrobic obsluge klawiatury matrycowej, LCD, RS, ADC na jednym timerze + petla glowna a efekt sekwencyjnego wywolywania kodu jest i tak niewidoczny dla uzytkownika. Jak chcesz migac 3 diodami, np. 1 co sekunde, 2 co dwie sekundy, 3 co trzy sekundy to bez problemu zrobisz to na timerze wywolywanym co sekunde. A i tak jest to przerost...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Witam, W żadnym temacie na elektrodzie z komunikacją bezprzewodowa nikt nigdy nie udostępnia kodów (nie wiem dlaczego). Męczę się od kilku dni z przesłaniem ramki. Mam moduły 433 MHz, te najprostsze, ale na razie próbuje to zrobić po kablu. Dane są kodowane w manchester, funkcja kodująca działa poprawnie, ale nie mogę się poprawnie zsynchronizować....
Witam Używam Attiny2313 do pomiaru dwóch temperatur z DS18B20. Wynik ( Integer ) przesyłam bez żadnej obróbki przez UART przewodem 40 cm do Atmega328. Atmega rozbija odebrane dane i jest obróbka Kod Attiny2313 $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 4800 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5...
Witam Stopniowo rozbudowując o kolejne konfiguracje układ chciałbym mieć możliwość ustawiania parametrów zegara przez pilota ( w sumie to bardziej wygodne i nie zabiera wyprowadzeń uC ). Mam program z menu działającym na przyciskach, zastosowałem flagi, gdyż sprawdzanie tylu wersji warunków niepotrzebnie zagmatwałoby kod. Zostawiłem obsługę przez przyciski...
Udało uruchomić moduł. Tzn. program w Bascom, zawiera między innymi dwa podprogramy, Setup_esp8266 i Send_esp8266 . Miałem co prawda mały problem, ale wynikał on z niewłaściwej kolejności wysyłania znaków CR i LF. Prawidłowo powinno być: [syntax=text] Print "AT+RST" + Chr(13) + Chr(10) [/syntax] O ile konfiguracja nie nastręcza problemów ( bo idzie...
ZDALNIE STEROWANY SAMOBIEŻNY MANIPULATOR OPERACYJNY DO ZADAŃ SPECJALNYCH http://obrazki.elektroda.net/20_12096489... Chciałbym zaprezentować mój kolejny duży projekt, będący zarazem moją pracą inżynierską. Praca jest dość złożona, wymagała dużego nakładu pracy, wykorzystania narzędzi do projektowania i obejmowała głównie trzy nurty - mechanikę,...
bascom odbieranie znaku bascom odczyt ramki odbieranie smsów
zamiana pamieci dopisanie kluczyka laguna sonda lambda
zarejestrować słuchawkę panasonic zarejestrować słuchawkę panasonic
Lokalizacja bezpiecznika gniazd 12V w MAN TGE 2021 2.0 Diesel Czy akumulator żelowy może syczeć podczas ładowania?