Prawdopodobieństwo "trafienia" w taką jednoczesną zamianę bitów w sumie CRC i tablicy jest znikome. Poza tym CRC32 z samej siebie zabezpiecza wystarczająco. Nawet CRC16 jest dość silnym zabezpieczeniem (ale to zależy od ilości zabezpieczanych danych i ich ważności). Zabezpieczenie sumy CRC inną sumą nie ma za bardzo sensu (wykrycie błędu tak czy inaczej...
Poszukuję gotowej wyliczonej tablicy wielomianu do liczenia crc16 wg CCITT. Nie mam RAMu na tablice dlatego zamiast wyliczania jej potrzebuję wstawić gotową tablicę do pamięci programu. Nie ma ktoś pod ręką?:D
[syntax=vbnet][/syntax] Public Function crc16r(ByVal amount As Byte) As Long Dim i As Integer crc16r = 0 For i = 0 To amount crc16r = CLng((crc16r << 8) Xor CLng(crc_table((CInt((crc16r >> 8) Xor bufr(i)) And 255)))) crc16r = crc16r And &HFFFF Next i crc16r = Not crc16r crc16r = crc16r And &HFFFF End Function [syntax=text][/syntax]...
Tablice Pixel mają interfejs RS485 ale to chyba już zauważyłeś.Transmisja 4800 9-bit (dziewiąty bit jest bitem parzystości) Jeśli temat jeszcze Cię interesuje napisz na forum. W tym momencie nie mam przy sobie notatek więc nie chce pisac bzdur. Jest w protokole transmisji jeden problem , mianowicie sposób liczenia sumy kontrolnej.Prawdopodobnie jest...
Dlatego, że CRC ma taką właściwość, że jeśli podasz początkowe CRC takie samo jak CRC bloku z którego CRC liczysz, to w efekcie dostajesz 0 lub same Fy. W efekcie tak jest prościej. CRC można też umieścić w zabezpieczanym bloku, co w efekcie daje ten sam efekt. Co do algorytmu - sposobów na wyliczanie CRC jest kilkanaście. Także musiałbyś określić co...
a widzisz niby nie problem, ale ja pisałam ostatnio w delphi 4 lata temu i teraz muszę się uczyć krok po kroku, możesz mi jakiś przykład napisać? Dodano po 38 dobra z tablica jakoś sobie poradziłam teraz się męcze z CRC16 w instrukcji do czujników jest podany sposób obliczenia ale w c a nie w delphi czy ktoś mógłby pomóc mi to przetłumaczyć? voidCalcCRC16(unsignedchar*CRC_H,uns...
Zapomniałem dodać ,że mam także wersję tablicową ( szybszą ale zajmuje więcej miejsca w programie ). Oto ona : /* static prog_char auchCRCHi UWAGA - miałem problemy z działaniem tej wersji algorytmu CRC, po porównaniu z tablicami jakie opublikował Modicon w "Modbus over serial line specyfication" i znalazłem 3 błedy. Prawidłowa tablica powinna wyglądać...
Daj dekrementację size za warunek pętli (np na jej końcu) i przekaż ilość elementów (6). Poprawny wynik to 140C (nie 0C14) (0C15 to CRC dla sytuacji bez ostatniego elementu przesłanej tablicy).
Patrz wyżej, zamieściłem kod, który daje poprawny wynik (z dokładnością do endianessu). Dodano po 6 Bład masz logiczny... 0x22 to jeden bajt a ty rozpisałeś to tak jakby były dwa bajty 0x2 czyli 0x0202. Badaną wartościa jest 0x22 i jest to jeden bajt.
(at)szczukot korzystałem z algorytmu CRC podanego w tym wątku, ale po przepisaniu na c++ nie działał mi poprawnie, tak samo żaden inny z neta. Ale minionej nocy wszystko się wyjaśniło i już działa. Trzeba przekazywać tablicę o typie zgodnym z tym, na którym pracuje algorytm, czyli potrzebna jest 16 a nie 8 bitowa tablica (uint16_t zamiast char). Problemem...
Jezeli masz tablice: unsigned char data[] = { 0x02, 0x1c, 0xb8, 0x01, 0, 0, 0, 0xa2 }; to do funkcji mozesz przekazywac tylko jej elementy, np. data[0], data[1], ty natomiast probujesz przekazac wskaznik do tablicy.
Witam, wszystkich, zaglądam tutaj często, ale dopiero teraz zdecydowałem się napisać pierwszy post. Potrzebuje pomocy - posiadam tablice LED z autobusu typu jak w temacie. Potrzebuję ją oprogramować, tak aby wyświetlała treści jakie potrzebuję. Posiadam też do niej sterownik, ale nie spełnia tego czego chciałbym uzyskać. W związku z tym mam pytanie,...
Witam OK, po ponad dwumiesięcznej, intensywnej eksploatacji mp-czwórki wyszły na jaw błędy w programie, które kończyły się wyjątkiem Data Abort i "zwisem". Jedną z przyczyn udało się dość łatwo namierzyć, mianowicie wyjątek ten powodowany był tylko podczas odtwarzania jednego, specyficznego pliku MP4. Okazało się, że w tym pliku atom "stsc" składał...
chodzi o to że takie wywołanie: u16 Get_CRC16(nData,wLength) przy stałej tablicy nData powoduje obliczenie sumy kontrolnej całej tablicy no chyba że podam wLength krótsze to się obliczy suma ale zawsze to będzie od elementu pierwszego. A ja chciałbym podawać od którego elementu tej tablicy ma mi liczyć crc. W zmiennej "ar" mam numer indeksu tej tablicy...
Widziałem kilka takich kalkulatorów, ale każdy ma kilka opcji dodatkowych. Ja nie wiem jaki typ CRC16 zastosowano w Modbusie poza tym opisem algorytmu. Opis ten jest dokładnie taki jak powyżej (skopiowany z .pdf). A jak wyglada funkcja tworzenia takiej sumy z tablic?
No najoptymalniej chyba byłoby prebuforowanie tablicy deskryptorów, czyli deskryptory na początku (token+rozmiar+tablica+crc16) w wielokrotności sektora a dalej faktyczna binarka z fontem (token+rozmiar+tablica+crc32). Najprostszy parser wygądałby jak interpreter rozpoczynającego tokena z rozmiarem, przy "otwarciu" fonta check sum kontrolnych. Tego...
CRC wcale nie musi byc czasochlonne! Jezeli tak zalezy koledze na szybkosci dzialania to moze obliczyc CRC za pomoca tablicy i kilku odwolan do niej. Jest to rozwiazanie o wiele szybsze niz wyliczanie CRC "matematycznie" a jedyna wada jest taka, ze potrzeba zarezerwowac 512 bajtow na tablice w pamieci programu (CRC16). www.tkdami.net/~roman72/pdf/dtr/dtr_sum_...
Potrzebuje emulator DS18B20 na atmega8 - mam na PC program do odczytu temp i chciałem w tym programie dodac inne parametry ( np wilgotnosc ) ale nie zmieniajac programu - w scrachpadzie bede wisyłał inne dane nie temperature. ( w bajtach temperatury lub bajtach uzytkownika wolnych 2szt) Aktualnie używam "lampomitari" , ale napisalem przeróbke programu...
Funkcja, nie widzi tablicy deklarowanej w innym pliku. Co może być przyczyna ? Na co zwrócić uwagę. Poniżej wycinki z kodu. [syntax=c] /* ATmega 8 */ glowny.c //==================================== . #define REJESTR 50 int rejestr[REJESTR]; void main(void) . while(1) . wykonaj(&ramka,(ile_bajtow-1)); . .=======================================...
Witam . Mam do zrealizowania CRC16 i CRC32 w ST,FBD dwiema metodami wyciąganiem XOR oraz tablicami . O ile wiem jak zabrać się za to w ST tak w FBD nie mam zielonego pojęcia . W FBD muszę to zrobić w blokach użytkownika.
Problem rozwiązałem. Najpierw próbowałem innej biblioteki crc ale źle liczyła sumę dla modbus. W końcu znalazłem w Internecie funkcje w C, liczy ok. Ja kiedyś miałem dziwną sytuację - szereg funkcji, które zwracały "String" (z dużej litery). W kilku projektach działa to bez problemu, ale w jednym były dziwne restarty Też już miałem z tym kłopot. Gdzie...
Tak myślałem. Do tej pory próbowałem sam napisać obsługę opartą na przerwaniach od UATR'u i liczniku, ale dojechałem do chyba martwego punktu - odpytywanie pojedyńczego modułu działa bez problemu, natomiast problem jest z kilkoma modułami, tzn. jak odpytuję kilka modułów odpowiada tylko jeden... Algorytm po krótce wyglądał tak, może ktoś zobaczy błąd...
Kolego... Jesteś jedwabisty:) piwko dla Ciebie:) Wielkie dzięki i pozdrawiam:) Dodano po 1 Sory kolego ze zawracam...:) ale czy dał byś rade jeszcze mi wytłumaczyć obliczanie crc16 ???:) np: wielomian: 10001000000100001 ($11021) dana $00=crc$0000 dana $01=crc$1021 dana $02=crc$2042 dana $03=crc$3063 i załóżmy że chcę ciąg danych $0103=crc$0352 jak to...
Witam, posiadam tablice elektromagnetyczną 21x12. Robię sterownik do sterowania nimi z komputera i ostatni element układanki który mi został to najprawdopodobniej (?) suma CRC. Przykładowe ramki wraz z wyświetlanym tekstem to: 22DDA 0 3 63 0FF0FF0C00C00FF07F00007E0FF0CB0CB0FB07A0... 018C 22DDA - numer tablicy 0 3 63 - za każdym razem...
https://obrazki.elektroda.pl/8343613300_... Postanowiłem podłączyć rekuperator Thessla Green do Home Assistanta. Rekuperator posiada dosyć dobrze udokumentowane wyjście ModbusRTU. Do połączenia postanowiłem użyć konwertera RS485 na Ethernet dosyć popularnej firmy Waveshare. HA posiada wsparcie dla Modbus-TCP, ale chcę zachować pewien...
To zrobiłem tak jak mówisz: [syntax=c] void USART1_IRQHandler(void) { /* Sprawdzamy czy jest cos w buforze RX */ if (USART_GetITStatus(USART1, USART_IT_RXNE)) { byte = USART_ReceiveData(USART1); //przypisanie wartoci z RX //sprawdzenie czy wystąpił pierwszy bajt tj. adres slave if (byte == ramka[0]) { bitstart = 1; bitstop = 0; licznik = 0; } //inkrementowanie...
Witam. Koledzy niby prosty układzik między innymi z czujnikiem temperatury DS18b20. Nijak nie mogę uruchomić tego czujnika. Sprawdziłem wszystko pod kątem połączeń zwarć i zimnych lutów. Ba nawet czujnik podmieniałem i nadal temperatura odczytana z czujnika to -0.1. Wiem że mam jakiegoś babola w programie którego nie widzę. Jak znam życie to jakiś banał...
Tak apropos.....jaki program napisać aby maxymalnie zmulić uC i sprawdzić jego prędkość przy obciążeiu ?? najlepiej, aby to był jakiś w miarę prosty alg. obliczeniowy, ale taki, który wykorzystuje "duże" tablice danych, ale oprócz tego na wyjściu produkuje jakiś wynik, który jest się w stanie zweryfikować alternatywną metodą (np. na PC). Wtedy ma się...
Piszę program do czujnika zliczającego stan licznika gazu i wysyłającego dane na serwer w losowych odstępach czasu. Problemem jest fragment kodu: Każda procedura wysyłająca wywoływana jest 3 razy. Za pierwszym razem przesyłane są poprawne dane, a za dwoma kolejnymi śmieci (pogrubione linijki). Transmisja na pewno jest ok, bo sumy CRC16 się zgadzają....
Witam potrzebuję wykonać obliczenia CRC do modbasu w bascomie, ale chciałbym zrobić to za pomocą tablicy. znalazłem przykład na elektrodzie: http://www.elektroda.pl/rtvforum/topic99... ale niestety jest w języku C a ja go nie znam. Sięgnąłem po książke do C ale pomimo to nie jest dla mnie wszystko wiadome. czy mógłby mi kotoś pomóc w analizie kodu??...
Interpreter 1-wire sterowany przez rs232 Ponieważ posiadana płytka testowa z wyświetlaczem LCD 2x16 i 4 przyciskami nie zapewniała możliwości wygodnego testowania układów 1-wire powstał interpreter wykorzystujący standardowy komputer jako urządzenie wyj/wej i komunikujący się przez port RS232 przy pomocy kabla null modem. Hardware : Interpreter został...
Przybliżać nie ma co... przestudiowałem całą dokumentację na temat kart sd i zacząłem robić płytkę - 4 piny z szny danych na 4 dolne bity portu, wyżej pin z szyny poleceń/odpowiedzi, sygnał segara i 2 sygnały z gniazda - karta włożona i karta zabezpieczona przed zapisem... 6 sygnałów połączone na dzielniku rezystorowym(4 przewody z danych jak i przewód...
Dziękuję za źródła :) Pod C wprowadziłem małe zmiany, mianowicie zmieniłem niektóre typy danych w funkcjach. Kod wygląda tak: [syntax=c]static const int crc_table[256] = { 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81,...
Witam! Mam pewnien problem. Mianowicie muszę wysłać ramkę MODBUS RTU do sterownika w postaci mniej wiecej takiej: (pierwsze dwa pola to kolejno adres sleva i funkcja, drugie dwa to adres pamieci w sterowniku, kolejne dwa do ilośc adresów pamieći o które pytamy, no i ostatenie dwa to suma kontrolna-bez nawiasów oczywiście;). Niestety programista ze mnie...
Cześć. Pracuję nad takim małym systemem komunikacji pomiędzy kilkoma urządzeniami pomiarowymi a PC. Pomiędzy urządzeniami a PC jest coś w rodzaju hub'a, co sam zaprojektowałem i wykonałem - ogólny schemat jest taki: http://obrazki.elektroda.pl/5939738300_1... Wspomniane przeze mnie urządzenia pomiarowe nie są pierwszej nowości, więc...
(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne itd. W sumie chciałem, żeby w poradniku było trochę więcej nawiązań do...
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...
Dodaje poprawnie listing programu. [syntax=basic4gl] 'OSTATNIE ZMIANY 08,10,2014 'Problem z blednie wysylanymi danymi 'Problem z wylaczaniem sie sterownika $regfile = "m32def.dat" $crystal = 7372800 $baud = 19200 $include "Config_MMC.bas" $include "CONFIG_AVR-DOS.Bas" $hwstack = 128 $swstack = 128 $framesize = 128 '**************KONFIGURACJA LCD*****************...
Witam. Jak zwykle kiedy nie mogę sobie z czymś poradzić muszę zaczerpnąć porady na forum. Tak jest i tym razem. Otóż zbudowałem sterownik co który między innymi steruje też zaworem c.w.u. Zaworem "kręci" silnik dc a za rozpoznawanie pozycji odpowiadają dwie krańcówki mechaniczne zwierające do masy. Silnik ma hamulec który po odłączeniu zasilania zwiera...
http://obrazki.elektroda.pl/9589280700_1... HPS 2014 Hybrydowy laboratoryjny zasilacz sieciowy. Parametry użytkowe zasilacza w skrócie: 1. Wykorzystanie tanich i łatwo dostępnych elementów. 2. Wydajność prądowa min 3A (dla niskich napięć może dochodzić do 5A). 3. Rozdzielczość DAC 12bit. (filtrowany PWM 4.9kHz) 4. Rozdzielczość ADC...
Witam, probówałem różnych przykładów obliczania sumy kontrolnej i nadal nic. Mam zrobioną na sztywno tablice: 01 03 02 00 00 na końcu doklejam 2 słowa CRC wyliczone w funkcji i program symulujący modbus master mówi CRC error. Gdy nie wyliczam sumy kontrolnej tylko wpisuje do tablicy prawidłowe wartości sumy dla moich danych to program do symulacji modbusa...
Interpreter 1-wire sterowany przez rs232Ponieważ posiadana płytka testowa z wyświetlaczem LCD 2x16 i 4 przyciskami nie zapewniała możliwości wygodnego testowania układów 1-wire powstał interpreter wykorzystujący standardowy komputer jako urządzenie wyj/wej i komunikujący się przez port RS232 przy pomocy kabla null modem. Hardware : Interpreter został...
crc16 algorytm crc16 modbus tablica tablica stringi
instrukcje pilot philips testy akumulatorów horman pilot
temic mercedes briggs stratton
Jak zmienić styl dźwięku w Sharp 55GP7765? Zwarcie na taśmie w Pioneer SX-P720 - brak zasilania