W jaki sposób mogę rozpoznać koniec nadawania poprzez mastera, abym mógł slave-m wysłać do niego komunikat zwrotny? Najprościej wysłać na końcu ramki kod oznaczający "koniec nadawania". Lub jak napisano powyżej, użyj jakiegoś protokołu komunikacyjnego.
Jak masz już komunikacje po RS232, to tylko wystarczy Ci złożyć ramkę i wysłać a potem czekać na odpowiedź. Na końcu ramki należy dodać dwa bajty sumy kontrolnej CRC16, zresztą wygląd ramki modbusa znajdziesz bez problemu.
Dobrze kombinujesz. Ja rozwiązałbym to tak, że zapamiętywałbym timestamp (w milisekundach) ostatniego przychodzącego znaku. i jeżeli jest większy niż 4 ms (dla baudrate 9600) to uznajemy że jest koniec ramki. Oczywiście można użyć timera o większej rozdzielczości dla szybszych transmisji. Dla trybu ASCII sprawa jest chyba jasna.
A z czym masz problem? odbierasz znaki uartem i je analizujesz. Co jeszcze?
Witam Mam problem z reakcją na przerwanie od USART0. Za pierwszym razem przerwanie ma reagować na flagę RXRDY - pierwszy bajt ramki. Następnym razem przerwanie ma reagować jedynie na TIMEOUT lub ENDRX. Jest to w ten sposób zrobione, iż przy inicjalizacji odpalam przerwanie oraz ustawiam flagę przerwania na RXRDY. Po przejściu do przerwania i zrobienia...
To musisz sobie sam ustalić. Wszystko zależy ile danych przesyłasz i od protokołu transmisji (nie mylić ze stadardem poziomów napięć RS232). Jeżeli jest to kilka bajtów możesz liczyć te bajty i jak naliczysz ile przyszło to musisz wiedzieć ile miało przyjsć, porównać i odpowiednio zareagować. Ostatni bajt to przeważnie jakis specyficzny kod np: (ETX...
Do odczytywania polecał bym Read Input Registers - 0x04. 0x10 służy do zapisywania. Na końcu każdej ramki wysyłane jest crc16 wiec dobrze by było to liczyć.
Ale czy tego problemu nie załatwia nam określenie rozmiaru w parametrze Size komponentu ComDataPacket? Załóżmy, że jesteśmy tym komponentem. Mamy dane; marker start, marker koniec i rozmiar ramki. 1. przychodzą jakieś dane 2. czekamy na marker start 3. marker znaleziony, więc rozpoczynamy zapis ramki. 4. czekamy na marker końca lub/i koniec ramki 5....
Ale po co od razu WatchDog do tego? Nie lepiej dać TimeOut funkcji Inputbin? A jeszcze lepiej dać jakiś bajt wyróżniający początek ramki i CRC na końcu ramki. Tyle że liczenie CRC musiało by być szybkie żeby procesor nadążył z liczeniem po zgubieniu synchronizacji transmisji (Wtedy musiał by przeliczać cały bufor wielokrotnie przesówając się o jedne...
zależy jak tą ramkę sobie zorganizujesz ale jeden z prostszych sposobów, gdy przesyłamy znaki ASCII to koniec ramki łatwo np odróżnić po tym, że nadleciał znak ENTER (0x0d). Gdy wykryjesz go w przerwaniu to już możesz powiadomić pętlę główną czy jakieś zdarzenie w tej pętli, że już jakaś cała i gotowa ramka czeka na odczytanie. Jeśli pętla główna będzie...
-pkt1. - co zrobić jak nie nastąpi pkt2. - pytać dalej o to samo, ile razy Ja pytam 3 razy i zrywam programowo transmisję na PC jak nie dostanę odpowiedzi. To samo sie tyczy uP. -pkt4. i pkt.7 - dostał ramkę ale nie OK? - jak sprawdzić ,że dane OK? PC i uP wyliczaja sumy kontrolne z ramki tzw. BCC, jeżeli się zgadzają to OK, są one wysyłane zawsze...
Kamery analogowe nie mają powodu dawać obrazu z taką samą synchronizacją, więc przy przełączaniu przez prosty układ muszą być zakłócenia, bo koniec ramki z jednaj kamery nie będzie jednocześnie z początkiem ramki z drugiej - żeby ich uniknąć, twój układ musi dekodować i zapamiętywać ramki z obu kamer i z tego generować ramki, oraz przełączać na końcu...
Wybrałeś już moduły do komunikacji bezprzewodowej ? Przejrzyj ofertę sklepów elektronicznych i wybierz coś biorąc pod uwagę cenę/jakość. Jeżeli układ będzie posiadał wejście cyfrowe, wystarczy wykorzystać transmisję szeregową (np. typowy serial port RS-232) z prędkością 300-1200b, lub coś własnego. Warto na końcu ramki dodać CRC aby sprawdzić czy nie...
Lepiej sprawdzać sumę kontrolną. Po to została stworzona w systemach przesyłających dane szeregowo. Po pierwsze nie znalazłem w systemie Techa, żadnego zabezpieczenia przed wysłaniem 0218 w normalnych wartościach. Można więc potraktować, że to koniec ramki będzie, a to jakaś np temperatura podana. Po drugie błędne ramki się zdarzają. Nie dużo, ale ja...
OK! Wiadomo co masz odebrać, ale podpowiedz jak jest wysyłana twoja ramka. 1) jednorazowo? 2) cyklicznie, co pewien czas? 3) w odpowiedzi na polecenie, ktore wysyłasz do urządzenia? 4) ma stałą liczbę bajtów? Chodzi o to żeby w programie wykryć początek/koniec ramki. Samo porównanie jest trywialne jeżeli ramkę składać w string(ciąg znaków) Jeżeli założyć,...
Może spróbuj jeszcze w tym ostatnim przerwaniu wyłączyć obsługę DMA dla NVIC, a następnie włączyć jeszcze raz, może informacja o tym, że było przerwanie siedzi gdzieś tam jeszcze? Sam mam podobny problem przy współpracy ADC i DMA, gdzie mam w ADC odblokowane przerwanie od zakończenia konwersji, a przerwanie wywołuje się z flagą "konwersja rozpoczęta",...
Początek ramki to SFD, wynosi dokładnie: 10101011 - 1 bajt. Na końcu ramki jest FCS (pole sumy kontrolnej ramki) - rozmiar 4 bajty. PS. Słabo się starasz, wikipedia: http://pl.wikipedia.org/wiki/Ethernet
Programem Hercules, a co do ustawienia ID urządzenia to musisz zerknąć do rozpiski ramki ModBUS. Można też samemu złożyć taką ramkę tylko trzeba wiedzieć jakie ID urządzenia, od jaki rejestru ma zacząć pytać/zapisać i ile rejestrów i na koniec wyliczamy CRC.
;) fajnie to opisałeś..... tylko zapomniałeś dodać jednej drobnej rzeczy: - co to dla ciebie znaczy "wziąć pilota na żywo" a jeszcze bardziej to: "to dostaję kod 1" w czym ty dostajesz ten kod 1 ??? Bo wygląda jakbyś pisał o różnych rzeczach. Tak na marginesie to jest to pilot nadający w standardzie RC5. Więc jeśli używasz do odbioru jakichś standardowych...
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.
Tak na początku i na końcu ramki.
Układ odbiorczy jest rzeczywiście prosty, co nie znaczy, że odbiornik jest prymitywny. Zwracam uwagę na zastosowanie jak filtru rezonatora kwarcowego na częstotliwość 77.5 kHz. https://www.micros.com.pl/mediaserver/in... Fragment z dokumentacji: "If the voltage at the input of amplifier 1 is higher than about 5 µV, FSI will be high"...
To działa tylko jeśli nadający wysyła kiedykolwiek to 'idle'. Komputer na życzenie nie potrafi - nie przejdzie [dane][idle][dane][idle] jeśli w kompie mam zapchaną kolejkę wyjściową. Wtedy pozostaje softem gonić index zapisu DMA. Dla strumieni transmisja synchroniczna często odpada ze względu na długi RTTI. Ale to też zależy od tego, co transportuje...
Pomożecie ze zrozumieniem trochę dokumentacji dotyczącej tych znaków specjalnych 0xFE ? No bo rozumiem ogólnie to tak : 1) Z tego co jest w sodku (cmd + bajty parametrów) liczę dwa bajty CRC i wstawiam je za tą komendą z parametrami. 2) sprawdzam czy w tym wygenerowanym ciągu nie ma znaków 0xFE, a jak mam to zamieniam na 0xFE i 0xF0. 3) Na początku...
To wiele wyjaśnia. Spróbuj tak ;) [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 16 $framesize = 64 $baud = 9600 Config Lcd = 16x2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.6 , Db7 = Portb.0 , E = Portb.4 , Rs = Portb.5 Cursor Off : Cls Dim K1 As Byte Dim K2 As String * 20 Dim Id As String *...
USART może zgłaszać koniec ramki. Warunek to odstęp pomiędzy bajtami nie dłuższy niż bajt https://msalamon.pl/odbieranie-uart-po-d...
Masz zły sposób sprawdzania poprawności transmisji. Komp stacjonarny może powodować jakiś mały impuls na linii TXD podczas uruchamiania się komputera. Więc AVR odbiera go jako bajt. Potem wysyłasz 72 Bajty, ale AVR odbiera 71 bo wcześniej już odebrał jeden. I na koniec odbiera ten 72-gi i traktuje go jako ten ostatni bajt kontrolny. A on nim nie jest....
A masz na końcu <CR><LF> ? Do podglądania ramek wykorzystaj free serial port monitor .
Czy moze ktos wie jak rozpoznaje sie poczatek i koniec ramki w protokole ISO 9141??
0xFE, 0xFE, bit odpowiedzi - kod ramki, tutaj są zera, CRC (2 bajty), 0xFE, 0x0D. Bit a w zasadzie bajt odpowiedzi czyli konkretnie? Nie podał kolega jaki to bajt, a na dole pisze, że: Ogólnie do pobierania statusu wyjść/czujek służy ramka 0x17 Outputs State .. z tym, że to już nie dotyczy czujek (wejść), a tylko samych wyjść. Ogólnie, wg protokołu:...
Hmm... W tym szaleństwie jest metoda. Tzn. w programie nie widzę błędu: 11e:80 91 32 01 ldsr24, 0x0132 122:e8 2f movr30, r24 124:f0 e0 ldir31, 0x00; 0 126:e0 50 subir30, 0x00; 0 128:ff 4f sbcir31, 0xFF; 255 12a:80 83 stZ, r24 len++; 12c:8f 5f subir24, 0xFF; 255 12e:80 93 32 01 sts0x0132, r24 Tx_to_buf(); 132:ad...
To można rozwiązać na wiele sposobów. Jeśli tylko cześć ramki jest stała a zależy Ci na wartościach odebranych to można użyć bufora kołowego i kiedy wykryjesz koniec ramki to wciągasz z bufora poprzednie siedem bajtów. Tutaj jednak sprawa jest prostsza. Poniższy mikroprogram powinien sprawdzać po kolei nadchodzące bajty. Jeśli się zgadzają to wskaźnik...
Co do dodawania bajtów sterujących to nie ma takiej możliwości, gdyż dane które mogłyby zakończyć ramkę mogą trafić się w niej, wtedy procek mi zgłupieje bo potraktuje dane jako koniec ramki, po czym cała transmisja się rozjedzie. Ramka ma zmienną ilość bajtów, a urządzenia mogą być dołączane dynamicznie, stąd ramki rozpoznawane są po tym że idzie jeden...
Witam, też zetknąłem się z tym problemem, rozwiązałem go sposób dość prosty, analizuje znaki jakie dostałem z socketa jeżeli jest to znak końca ramki wycinam ten fragment ramki i dodaję go do listy (taka kolejka fifo), analizują dalszą część danych jeśli wykryję raz jeszcze znak końca ramki dodaję ten fragment ramki do listy. Pozdrawiam
Łatwiej i szybciej :wink:. "Łapiąc" tylko koniec ramki mamy pewność że skoro jest koniec to i cała ramka jest w buforze i można zacząć ją analizować. W szybkich transmisjach jest to istotne (przełączamy się na inny bufor i wtedy można analizować ramkę a w tym samym czasie odbierać następną). Bez ustalonych znaków końca ramki nie wiemy jak długa ona...
Nie ma tam krańcówek. Sterownik błędnie interpretuje obciążenie, nie zauważa tego, że szyba dojechała do końca ramy drzwi, a wydaje mu się że przygniata komuś głowę ;). Rada: przeglądnij górna część prowadzenia gdzie może łapać lekki opór zamiast nagłego na końcu ramki.
Rozwiązanie CSMA raczej w grę nie wchodzi, bo nośną masz cały czas. najprościej wydawałoby się zrobić tak, że jeden moduł jest nadrzędny i to on inicjalizuje komunikację. Wysyła adres modułu, moduł odpowiada danymi, a moduł główny może, że tak powiem je zachować lub przesłać do innego modułu podrzędnego. Wszystko zależy od tego jak często i w jakim...
A jak niby ten drugi telefon wygeneruje kody D,A czy też D,C oznaczające początek i koniec ramki CLIP w DTMF? Ja bym sprawdził telefon na innej linii telefonicznej.
Witam, poszukuje informacji o ramce w sieci uni-telway, a konkretnie jak rozpoznać początek oraz koniec komunikatu. Czy wygląda to podobnie jak w profibusie (0x68 na początku i 0x16 na końcu)lub modbusie ASCII(0x3a na początku i 0x0d 0x0a na końcu komunikatu)?
koniec tematu, ramkę kupiłem. Pzdr
Jeśli materiał jest w mpeg2, to ja robię tak (np. z nagraniami z dvb) programy darmowe 1.mpg2pva 2.pvastrumento 3.cutterman 4.dvdauthorgui 1 przerabia mpeg2 na bardzo podobny, lecz free pva, 1GB - 2min. po to by uporządkować strumień - niekonieczne przy dobrym materiale mpeg2 2 demuxuje pva na mpv i mpa (mpeg2 może też bezpośrednio demuxować, ale tylko...
Tablice wartosc1,wartosc2,wartosc3 są zbyt małe muszą mieć po 3 elementy. W funkcji hextoul tratujesz przekazaną zmienną jako string kończący się 0, a w tablicach nie masz już miejsca na koniec stringu. Dalej nie przeglądałem.
Witam Szukam programu którym przechwycę ruch w sieci profibus i go przeanalizuje, poukłada wg standardu Profibus. Chodzi mi o podglą zawartości ramek. Wiem że są programy takie jak TIBO NINJA I/O ale tam mi wysypuje wszystko jak leci a chodzi mi o program który sam rozpozna początek koniec ramki i w miarę czytelnie to poukłada coś jak Wireshark dla...
Nie pamiętam dokładnie tego modelu.Kojarzę cztery śruby z tyłu monitora.Być może jest jeszcze jedna śrubka na dole po środku i trzeba też odkręcić nóżkę.A "właściwe" rozbieranie takiego monitora polega na umiejętnym zdjęciu ramki na froncie-jest ona na zatrzaski.Tę operację proponuję zaczynać od środków ramki,a na koniec zostawić same rogi. Jak możesz,to...
>"Ale co nie działa ? " Nie wyświetla mi wartości Utc. >"Być może zbyt często chcesz wyświetlać jak na Bascom." Jeśli na końcu programu zamiast Locate 1 , 1 Lcd Utc napiszę: Locate 1 , 1 Lcd "UTC:"; Utc to wyświetla tylko UTC:, więc chyba to nie problem szybkości wyświetlania bo wtedy nic by się nie wyświetlało. >"A co ze znakiem CR" Według...
Ustal sobie po stronie uC jakiś format ramki, np. 0xFF - początek ramki [asci] [asci] [asci]-3 cyfrowa liczba w formacie ascii - PWM1 [asci] [asci] [asci]-3 cyfrowa liczba w formacie ascii - PWM2 0xFE - koniec ramki i potem w programie rozkodowuj wg. tych znaczników
Tego typu ekrany na ogół mają 2 taśmy. Szerszą przesyłającą obraz, i węższą do digitizera (choć miałem kiedyś tablet który miał szerszą do dotyku, więc nie ma reguły) U ciebie wygląda że ma 3. Stawiam że jedna to "obraz". 2ga to "przyciski na ramce", i w końcu 3cia - digitizer. Odepnij taśmę digitizera i zobacz co się stanie. Możliwe że "złamałeś" taśmę....
ok, mowie o hexach, bo to mi wypluwa avr studio w domyslnej konfiguracji ;] ale jesli mozna wrzucac cały plik bajt po bajcie, to moze jest to lepsze rozwiazanie. tylk oczy w pliku bin nie wystapią zakazane znaki [początek i koniec ramki]...
Popatrzyłem się trochę w te liczby i chciałbym kolegę trochę naprostować. Struktura tych plików jest znacznie prostsza:) Pierwsze 8 bajtów nagłówek. Następnie dane są w 64 bitowych (2x 32 bity) porcjach. Piewsza porcja to dwa słowa 32 bitowe o wartości 0x0 :) Potem są kolejne dane po dwa słowa 32 bitowe (4bajty). Pierwszy jest jakimś adresem, może offsetem...
Kolejny plik z działającym wsadem do procesora, tym razem obsługa przetwornika AC i portu RS. DSP czeka na komende z terminala "q" i wysyła pięć wartości hex reprezentujących napięcie na wejściach analogowych i 0Dh, 0Ah jako koniec ramiki oraz komenda "a" na która DSP odpowiada kodem procesora i końcem ramki (kod 0810h dla LF2401).
Skoro rysunek 2255842600_1396547955 pokazuje, że najpierw wysyła się "address high" a po nim "address low", to można przyjąć (bez zagłębiania się w notę), że dane wysyłane po sub-adresie przesyła się w taki sam sposób: najmniej znaczące bajty wielobajtowych danych wysyłamy na końcu, zatem 0xAABB wyślemy jako najpierw 0xAA, potem 0xBB, najpierw szesnastki,...
Bo program będzie akurat w tej chwili w innym przerwaniu o wyższym piorytecie : d. Zrobiłem narazie na przerwaniach i wstępnie chyba tak zostawię, pytanie czy tak powinno być : D kod : [syntax=c] void USART2_IRQHandler(void) { if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE)) { char c = USART_ReceiveData(USART2); if( c == '#'){ //koniec ramki i=0; }...
Witam, zakupiłem monitor przenośny LCD z matowym ekranem, lecz ten ekran w ogóle nie był matowy, wszystko wyraźnie się w nim odbija. Szukałem wszędzie po internecie i pisałem do producenta i już nie wiem, czy to jest folia ochronna tego wyświetlacza, czy już film polaryzujący. Próbowałem za pomocą taśmy go zdjąć, nic nie dało. Zacząłem dłubać igłą przy...
Chcę z Dalphi wysłać np. 1MB danych w ramkach po 128Bajtów, Działa mi to, jeśli nie wystąpi wcześniej niż na końcu ramki znak #13. A wysyłając dane czyli bajty wiadomo, że gdzieś w środku ramki pojawi się znak #13. Jak zmienię Bytematch na inny znak, to i tak nie da, nic bo jak wystąpi znak, zdefiniowany w Bytematch, prędzej w ramce automatycznie będzie...
Slave'y będą miały różne unikalne numery od 0 do 12? Jeśli tak, to kłopot jest niewielki. :-) Przecież to master inicjuje każdy przesył danych. To master powinien "wywołać" slave'a, z którym chce gadać. Na przykład: Przyjmijmy, że dane są zawsze kodowane w kodzie ASCII, wtedy bajty o kodach od 0 do 31 można wykorzystać na kody sterujące transmisją,...
AVE... Sygnał DCF-77 jest kodowany za pomocą modulacji amplitudy sygnałem PWM. Prędkość transmisji wynosi 1 bit na sekundę, i na początku każdej sekundy amplituda fali nośnej jest redukowana do 15% normalnego poziomu na 100 lub 200 milisekund. 100ms oznacza zero, 200ms zaś jedynkę. Ostatnia sekunda w minucie nie jest modulowana wcale, co pozwala łatwo...
Co to za dane? Czy mają stałą ilość bajtów? Jakieś stałe bajty na początku/końcu ramki danych? Poza tym uważam, że wszystko inne wyjaśniłem teraz tylko Kolega musi sięgnąć do dokumentacji BASCOM'a, znaleźć odpowiednie funkcje i napisać na ich podstawie program który chce kolega zrealizować. No i takie dane to raczej nie do jednej zmiennej, ale do tablicy...
Transmisja szeregowa, w najprostszym wydaniu modulacja laser włączony-wyłączony, np. sterowanie laserem przez NRZ, dodatkowo na końcu ramki CRC. W wydaniu bardziej zaawansowanym, laser może pracować z określoną częstotliwością (tak jak w IR), ew może zostać zastosowana modulacja FM, ew FSK, lub inne eksperymenty. Warto zacząć od rozwiązań jak naprostszych....
Synchroniczne są poprostu synchronizowane syg zegarowym przez co potrzebna jest dodatkowa linia dla sygnalu zegarowego. W przypadku transmisji asynchronicznej odbiornik musi "wiedziec" z jaka predkoscia nadajnik wysyla dane. Przy transmisji RS uzywa sie transmisje asynchroniczna. Masz sprzetowe UARTy ktore wykrywaja poczatek i koniec ramki. Zreszta...
Drodzy koledzy, Temat widzę stary ale również zmagam się z sumą kontrolną. Co prawda jest to transmisja z piecem CO. Czy wiecie może w jaki sposób jest wyliczana suma następującej ramki? 0x02 0x26 0xFF 0xF4 0x02 0x18 0xA1 0xDE gdzie: 0x02 0x26 to początek ramki / start, gdyż zawsze się powtarza 0x02 0x18 to koniec ramki. Po nim A1DE to właśnie obliczona...
AE to koniec ramki czyli CRC. Ale jak nasz jakies dane z softu z wersji jednofazowej to jak wywołaliście adres /CRC i pokaze Ci strona www z ilością ramek błędny i jak bedzie mała liiczba to można przyjąć ze ramki maja dobra sumę kontrolna. I ja cała zapiać. Poczatek powinien być zawsze 7E a koniec sie będzie zmieniał bo sa różne sumy kontrolne. A jak...
Ja podałem Ci sposób - robisz ramkę, w której symbole jednoznacznie oznaczają jej początek, koniec każdego pola i koniec całej ramki - i po tych znaczkach sobie rozróżniasz te pola, a potem normalnie dekodujesz dane - w końcu przetworzenie stringa na liczbę to nie problem, a nawet do tych pól możesz pakować stringi...
Co byś nie robił to po odebraniu zapytania Modbus Slave czeka trzykrotność czasu jednego znaku i jeśli żaden nowy znak nie nadszedł to to oznacza koniec ramki i dopiero zaczyna ją parsować. Więc przy 9600 czeka dużo dłużej niż przy 115200. Co ciekawe w Arduino przy 115200 i 16MHz masz 2,1% błędu. Osobiście używam, w jednym projekcie z Modbus, Arduino...
Sprawdź RealTerm powinien spełnić Twoje oczekiwania. [url=http://realterm.sourceforge.net/]Li...
Może ramki są podzielone nieodpowiednio. Np. początkiem jest 07 a końcem 10. Sam głowy nie dam ale na chłopski rozum są dane a na końcu ramki jest suma kontrolna. I przy takim podziale ramek wygląda to dla mnie najsensowniej. Co to jest za urządzenie? Może ktoś jest z branży i będzie się rozeznawał jaki protokół obowiązuje w tego typu urządzeniach....
Bezpieczniej będzie wyszukiwać znak po znaku . [syntax=c] volatile char dane[x]; volatile uint8_t poz_dane = 0; volatile char sekwencja[4] = {0xCC,0x33,0xC3,0x3C}; volatile uint8_t poz_sek = 0; ISR(USART_RXC_vect) { dane[poz_dane] = UDR; if (dane[poz_dane] == sekwencja[poz_sek]) poz_sek++; else poz_sek = 0; if ( poz_sek == 4 ) { mission_complete();...
Hmmm, sprawdziłem to z tymi flagami... raczej jest to zły pomysł. Program a dokładniej odebrana ramka Dmxa za bardzo sie rozjeżdża. Dlatego też zostanę przy tej mojej starej metodzie znajdowania sygnału Break. Należy jeszcze wspomnieć że procesor w przypadku tego sygnału nie wystawia flagi błędu ramki (ramka RS-485, nie dmxa). Wydaje mi się że może...
Budowę ramki rozumiem :D Kanał też uznałem jako częstotliwość nadawania. Prosiłbym Ciebie tylko o potwierdzenie czy dobrze rozumiem samo parowanie: do odbiornika wysyłasz kanał (jeden z zakresu 0-60) przemnożony przez 32 + 100, przy czym, ponieważ budowa ramki jest taka 0x12, bajt, bajt, bajt, crc8 to zamiast tych 3 bajtów wstawiasz to co wyszło z działania...
Witam, Z opisu wynika że czasu są znane, tzn. znany jest czas każdej operacji. Znając harmonogram produkcji a taki znamy możemy dokładnie wyliczyć ile sztyk danego produktu wytworzymy np. 8h. Co więcej możemy wyliczyć jaki krok będzie realizowany np. za 1h i 34min. Możemy wyznaczyć automatycznie wykres ganta, uszeregować zadania, przydzielić zasoby...
Hmm, kiedyś dodałem to info w błędach, aby było widać trochę co leci. Ta komenda 7F powinna z ETHM zwracać 5 lub 6 bajtów. A tu w odpowiedzi leci aż 15 ! Czyli z początkiem i końcem ramki i z CRC aż 21. ps. Pobrałem właśnie najnowszą dokumentację, i tam były jakieś zmiany. Piszą, że może wrócić 13 lub 15 bajtów (zamiast 5 lub 6) jak dobrze rozumiem....
Ramka: Code: Mam problem z implementacją ramki napisanej prze zemnie, piszą ją wzorowałem się na przykładzie napisanym w c++ a gdy dzisiaj piszę w c# visual studio nie przyjmuje mi polecenia rozkaz na końcu ramki. Proszę o podpowiedź jak mam się odwołać po ramki. Znalazłem przykład na MSDN ale niestety nie bardzo rozumiem o co tam chodzi i jak przenieś...
Powinien się wyrobić, ważna informacja dla Ciebie, s7 1200 potrzebuje ok 175us na odpalenie przerwania (więc dobrze że ta "dziura" 2ms do kolejnego bitu). W obsłudze przerwania odczyt bitu jakaś inkrementacja żeby wklepać to w tablicę booli i jakaś obsługa flagi końca ramki i tyle. Osobiście wolałbym dać małego AVRa czy coś a do 1200 wsadzić płytkę...
Jeżeli można się wtrącić proponował bym w połączeniu z timeout'em dodał jeszcze na koniec ramki bajt sumy kontrolnej CRC. Wtedy wiedząc znając czas prawidłowej przerwy pomiędzy poszczególnymi bajtami możesz ustalić sobie odpowiedni timeout zerujący sumę kontrolną, jeżeli przerwa jest mniejsza niż timeout "przerzucasz" kolejne bajty do tablicy jednocześnie...
Serdeczne dzięki za okazaną pomoc, światełko w tunelu pokazał mi mirekk36 w jednym z jego wcześniejszych postów http://www.elektroda.pl/rtvforum/topic71... Rozwiązanie okazało się banalnie proste, w zasadzie bez pisania ani jednego słowa kodu, genialne ! Dokładnie rzecz biorąc komponent ComDataPacket z jego zdarzeniem OnPacket. Musiałem tylko...
Mam odbiornik MAX485 podłączony pod Atmegę16. Stany poczatkowe: -ustawione przerwanie na odbiór UARTa - stan niski na DE/RE w odbiorniku Max 485 - Max 485 na RO,DI stan wysoki ( równierz Atmega RxD) !!? Wysyłam dane: (z odbiornika wychodzą prawidłowo 0 i 1) - Wchodzę w przerwanie i klapa. - same zera. Pytanie brzmi: co jest źle? Jak procesor orientuje...
Po prostu odpowiedzi nie będzie i tyle. Większość zabezpieczeń transmisji polega na obliczeniu sumy kontrolnej z wysyłanej wiadomości i posłaniu jej dołączonej w sposób jawny. Odbiornik otrzymując wiadomość liczy z niej sumę kontrolną i porównuje ją z tą otrzymaną jawnie -jeżeli wszystko się zgadza można z dużym prawdopodobieństwem domniemywać, iż transmisja...
Witam, Tworzę terminal do odbioru danych z Atmegi 328p-pu. Wysyłam ramkę z mikroporcesora: [syntax=c] printf("%4ld,%4ld,%4ld,%4ld,%4ld,%4ld,\r... [/syntax] Po stronie komputera dane rozdzielane są na podstawie przecinka jako "token" i koniec ramki wykrywany jest na podstawie "\n". Mam też zabezpieczenie przed pierwszym pomiarem gdyby...
Rozumiem, że skander już działa, czyli jest zaimplementowana obsługa modbus i komendy po stronie mikrokontrolera. Ramka MODBUS w trybie ASCII składa się z następujących części: początek ramki - znak dwukropka adres odbiorcy - 1 bajt (0=broadcast, lub 1-127) kod rozkazu - 1 bajt LRC - 1 bajt koniec ramki - enter (znaki CR i LF czyli 13 i 10 dziesiętnie)...
Mam konwerter soyala cm-727 Programem modpoll bez problemu udaje mi się coś odczytać w trybie modbus rtu over tcp/ip Jak podejrzałem sobie co jest w w ramce programem commview to wychodzi na to że na początku jest ramka od tcp/ip a pózniej na końcu leci ramka typowo w modbus rtu.
Witam. Mam problem z obliczeniem sumy kontrolnej BCC wykorzystywanej podczas komunikacji z licznikami energii zgodnej ze standardem ISO/IEC 1155-1978. Zasada powinna być prosta. Ramka zaczyna się od kodu STX, kończy kodem ETX, siedem bitów plus kontrola parzystości. Na poszczególnych bitach wszystkich przesłanych (poza STX) elementów wykonujemu EXOR...
Najpierw musisz zdekodować warstwę fizyczną - czyli musisz mierzyć impulsy. Najlepiej by było, gdybyś to zrobił na timerze capture, mierzysz czas odstepu miedzy zboczami, i tyle... Kazdy bit po bicie wpychasz do fifo... w petli głównej masz pętlę która rozbiera tą kolejkę, i zamienia bitstream na ramki. Takie ktore mają zdefiniowany początek i koniec,...
Jeśli nie wiemy, co przyjdzie po UART, to sscanf nie pomoże - trzba napisać parser w postaci automatu - żadna sztuka. Czemu nie pomoże? Jeżeli podamy do sscanf ramkę ze stringiem zakończoną NULL inc się takiego nie stanie. Cały automat odbierający czeka na '\n' i wstawia null terminator na koniec ramki. Tak, to takie proste. Nic się nie zepsuje. I...
Witam! > TO CHYBA LINIA OPOZNIAJACA ROZNICOWYCH KOLORU Oj chyba coś niedokładnie opisałeś. Od linii opóźniającej nie mógł przemieszczać się cały obraz. Co najwyżej chrominancja. Remek DROGI KOLEGO!!! 1.w tym ukladzie sygnał różnicowy koloru jest synchornizowany przez sygnał sandcasltle co znaczy ze teoretycznie mozemy zakłócać ten sygnał!!! 2. jezeli...
O ile mi wiadomo - Bascom potrafi jedynie zbudować i wysłać ramkę do urządzenia SLAVE. Kod slave musisz napisać sobie sam. Podpowiem trochę. Modbus RTU od strony slave nie jest skomplikowany w implementacji. Przyjdzie Ci na port UART taka ramka danych: - początek transmisji (3,5 znaku ciszy) - adresu urządzenia (1 bajt) - kod funkcji (1 bajt) - danych...
Nie skopiujesz sam takiej karty. Nie ma takiego pojęcia"czysta karta" bo jej numer nadawany jest od razu w fabryce. Czytałem kiedyś, że komuś się udało ale to wymaga pewnie dużej wiedzy i sprzętu. Podstawową cechą tych kart to właśnie unikalny numer. Każda karta wysyła 64 bitową ramkę danych (preambuła synchronizacji, znacznik początku ramki, dane kart...
To jest nowa ikona zmiana nastąpiła pod koniec 2018r możesz poczytać na forum 'adobe' https://forums.adobe.com/thread/2543022
Stos w mikrokontrolerach AVR "rośnie w dół" czyli minimalną wartość stosu najlepiej ustawić na koncu pamięci RAM. Co to znaczy? Może raczej początek stosu umieścić na końcu pamięci RAM?
Mam nadzieję, że trochę pomogę. Dane mają 80 bitów (16 bitów w skali szarości na kanał) + 32 bity na końcu każdej ramki, co odpowiada bieżącemu limitowi dla każdego kanału (5 bitów na kanał). W przypadku SM15155E wynosi ono od 10 do 300 mA. Ostatnie 7 bitów to tryb gotowości i kilka zarezerwowanych bitów (zaleca się zachowanie 11111). Nie jestem pewien,...
konfiguracja kontrolera polega na tym, że do kilku(nastu) rejestrów wpisujesz odpowiednie dla siebie wartości, ustawiasz rozmiar buforów, adres MAC etc. W tym module kontroler jest widoczny w przestrzeni pamięci pod 32 adresami zaczynając od 0xFF00, więc dostęp do rejestrów jest skrajnie prosty. Komunikacja z tym układem nie jest skomplikowana, z początku...
Popieram kolegów , najpierw zajmij się tymi prostszymi rzeczami a cyfrówke zostaw na koniec , podstaw ramkę i elementy wokół niej albo zrób reset pamięci w trybie serwisowym i wszystko sie wyjasni , oby to nie była cyfrówka , pozdrawiam i powodzenia
Żeby wyjąć tą ramkę musisz zdjąć korpus, wyjąć płytę główną, wyświetlacz i inne pierdoły i na koniec odkleić dotyk od ramki.
1. Jaki masz kwarc? 2. Kod pętli głównej nie zmienia stanu automatu odbiornika - zostaje 3. 3. W tym stanie odbiór następnego znaku po końcu każdej ramki spowoduje ustawienie stanu na 0, a znak zostanie zgubiony.
Możesz rozwinąć skrót Uk ? ;) uk = µk = mikrokontroler (PL) uc = µc = microcontroller (EN) Dodano po 19 Czy mówisz, żebym sobie dał spokój z jakimkolwiek "hardware'wym STOPEM" Myślałem o takim rozwiązaniu jak mówisz ale strasznie dużo roboty z pisaniem warunków, budowaniem tablic i instrukcji case/if'ów i itp.. Myślałem, że da się to trochę...
Wybrałem opcję ustawienia strony tam w rozmiar wpisałem 140mm i 300mm wyświetliła mi sie ramka robocza pola i w tej ramce pracowałem już pod koniec bo coś ciasno mi się wydawało wziąłem pomiar odległości i ku mojemu zdziwieniu wymiar pola roboczego to 270mm i 120mm i teraz chciałbym to przerzucić na frezarkę CNC niestety wymiary są nie zgodne
Nie napisałeś jaki ma to być Modbus ascii czy rtu, kodu w bascomie nie posiadam ale może Ci coś podpowiem, więc tak jeśli chodzi o rtu jest to postać bitowa i ważne są odstępy czasu miedzy znakami oraz początkiem i końcem ramki, jak to zrealizować a no bardzo prosto ramkę składasz z ascii i posyłasz to na rs232/485 i będzie działało może nie jest to...
Witam, oczywiście, że lepiej korzystać ze zdarzeń jeśli komponent takimi dysponuje ;) ... proponuję ci przyjrzeć się w tym przypadku zdarzeniu OnRxChar piszesz, że twój sterownik wysyła stałą liczbę bajtów - ale czy wysyła jakiś znak początku i końca tej ramki danych? tak więc w tym zdarzeniu możesz próbować rozpoznawać początek i koniec ramki oraz...
No a to w ramce na końcu czerwonym drukiem czytałeś ? Twoja płyta nie obsługuje tego procesora.
Doczytałem wszystko i juz widze w czym problem. Autor musi sie zdecydować w jakim trybie ma pracować terminal. I w zależności od tego, trzeba odpowiednie znaki wysłać. Jak unicode to tak jak w powyższym fragmencie. A jak ansi to... Przed wysłaniem sekwencji ramki trzeba wysłać sekwencje esc przełączającą terminal w odpowiedni tryb i na koniec danych...
Witam. Robię trzycyfrowy wyświetlacz led sterowany przez rs 485 (na razie 232) i zastanawiam się nad sposobem przesyłenia danych , poczytałem posty na tym forum + specyfikację gotowego protokołu i postanowiłem że chciałbym przesyłać: 1 bajt startu , 2 bajty adresu , 1 bajt rozkazu , 2 bajty danych , 2 bajty sumę kontrolną , 1 bajt koniec ramki . Pytania:...
Witam! VCP wywala mi błąd z climatronikiem w passacie 3c, zauważyłem też, ze kodowanie wynosi '0' co mnie najbardziej martwi, wrzucam opis DTC Znalezionych DTC :1 DTC: 0525, Status: 6D, Opis: Komputer sterujący w zestawie wskaźników - J285, Pamiec bledow do odczytania, Lamp OFF, Permanentny .....::::: Ramka zamrożona :::::..... Status DTC: 6D Priorytet:...
ramki samsung naprawa ramki ustawienia ramki
prąd ciało człowieka włącznik lampa stać przesuwanie tekstu
jacuzzi dmuchane jacuzzi dmuchane
Sterowniki do Cobra Monaco SW2020 bez CD-ROM Moment dokręcania dysz natryskowych Audi A4 B6 1.8T