W STM32 bit parzystości wliczany jest do długości ramki. Jeśli więc ustawisz w STM32 długość 8 bitów i brak parzystości, to masz 8 bitów danych. Jeśli jednak ustawisz 8 bitów i jakąkolwiek parzystość, to w efekcie masz 7 bitów danych i bit parzystości. Jeśli więc chcesz uzyskać 8 bitów danych oraz bit parzystości, to musisz ustawić w STM32 długość ramki...
Skąd pomysł że to jest RC-5? Ani długość ramki nie pasuje do RC-5, ani ta sekwencja startowa, ani sposób kodowania bitów. Może to NEC? https://obrazki.elektroda.pl/8744099600_...
Najprościej wysłać na końcu ramki kod oznaczający "koniec nadawania". Ale też naj zawodniej - musisz dbać by w środku ramki danych przypadkiem nie pojawiła się taka sama sekwencja. Wzorując się na modbusie i podobnych proponuję tak zmontować ramkę by w jednym z pierwszych bajtów była zapisana długość ramki lub długość pola danych jeśli jest zmienna...
Regulacja RTS sie opłaca , u siebie próbowałem ustawiać i sprawdzać jakie transwery mam i okazało sie ze jak ustawiłem na 410 to było najlepiej , parametr ten określa długość wysyłanej ramki jaką ma wysyłać urządzenie podczas transmisji na wlan, a fragmentacja określa od jakiej długości ramki ma zacząc fragmętować ramki na mniejsze, ale fragmętacje...
Po pierwsze czytaj ze zrozumieniem i spokojnie. Pole nr 1 i 2 to długość danych. Dwa razy powtórzone w celu eliminacji błędów. W instrukcji są inne bo może inne było zapytanie w odpowiedzi masz taką wartość jaką faktycznie odebrałeś. 0 - 68 - oznacza początek wiadomości zawsze 68 1 - 45 - długość ramki z danymi w 45 hex = 69 dec - tu masz 74 pola minus...
Można tak, a dla danych binarnych np. pierwszy odebrany bajt może zawierać długość ramki. Wtedy kończysz odbiór w momencie odebrania określonej przez pierwszy bajt ilości bajtów. Wygodnie jest też jako ostatni bajt umieścić CRC, wtedy CRC całej ramki powinno wynosić 0, jeśli nie to mamy błąd.
Nie wiem czy ma to znaczenie, ale w pozycji Port u mnie jest 16101, a u ciebie 27250, może tu jest błąd, jeszcze długość ramki TCP ja mam 0, a Ty 1200. Jak zmieniam port, nie mogę się zalogować. Długości ramki TCP nie mogę zmienić. Czekam do jutra.
1. Fast Ethernet wykorzystuje ten sam format ramki i technologie CSMA/CD co normalny 10Mbps Ethernet. Różnice są w zmniejszeniu wartości maksymalnych opóźnień sygnału między segmentami z 51.2 ms na 5.12ms. Większość portów Fast Ethernet działa z opcją 10/100Mbps czyli z możliwością manualnego ustawienia prędkości transmisji lub też auto-detekcji parametrów...
witam, szukam odpowiedzi na ponizsze pytania: - Jak działa pierscien ze znacznikiem FDI Chodzi pewnie o sieć FDDI - Uzasadnij dlaczego pojawia sie min. dł ramki w eternecie (to się wiaże z kolizjami) Wynika to z czasu propagacji sygnał. Jeśli ramka byłaby zbyt krótka to 2 stacje mogłyby nadać coś w tym samym czasie i nie wykryć kolizji.
To zależy od tego jak szybko będziesz nadawał dane i jaki masz baud. Jeśli procesor będzie działał względem baudu RFM'a dostatecznie szybko to tak być nie powinno, ale zawsze należy zabezpieczyć się na wypadek jakichś problemów i sprawdzać ten bit. Oczywiście jeśli dojdzie do OVF to cała ramka jest do śmieci. Dodano po 3 Nie napisałem, że sprawdzanie...
Jesli ramka ma max 20 bajtow to zadeklarowac pole o tej dlugosci, w przerwaniu odbierac kolejne bajty i je zapisywac. Dodatkowo jeden bajt jako flaga, ze cala ramka zostala odebrana (w przerwaniu trzeba porownac odebrana informacje o dlugosci ramki z iloscia faktycznie odebranych bajtow). Ta flaga w programie glownym mowi o tym, ze jest gotowy pakiet...
-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...
Dane zostaną odcięte do 5-u bitów i tylko to będzie przesłane. W tym wypadku wysłany zostanie bajt = 1.
(at)BlueDraco Dlatego trzeba robić przerwę co kilkadziesiąt bajtów. Jest oczywiście tak bo Ty tak mówisz i koniec. Dlaczego kilkadziesiąt? Nikt nie wie. Zrozum, że większość protokołów ma ramki o ograniczonej długości. Ramki takie posiadają nagłówki oraz CRC. Protokoły z ramkami o długości kilkanaście kilobajtów również istnieją i działają całkiem...
To jest ten sam protokół co H02, ale nadaje ramkę naprzemiennie w DEC (plaintext) i HEX, więc parser musisz sobie napisać z dekoderem dla dwóch formatów. Czasami w jednym pakiecie leci kilka ramek, więc musisz tak napisać parser by oddzielał pakiety zakończone "#". Taka paczka ma różną długość. Za to ramka w HEX ma zawszę tę samą [90bajtów]. Na testy...
Jak to zwykle na początku projektu bywa, warto wejść w tryb brainstormingu ;) Wymagania co do samego protokołu: - koncentracja na tanich, prostych, chińskich modułach (zaawansowane moduły mają już własne protokoły lub wsparcie w postaci bibliotek i społeczności, brnięcie w protokół na mocnym module nie skończy się dobrze) - protokół zorientowany na...
Hm.. jeśli długość ramki jest zależna od jej typu, to chyba trzeba obsłużyć wszystkie typy ramek, choć ciekaw jestem czy ktoś inny będzie miał jakiś pomysł. To co mi przychodzi jeszcze na myśl, to: - użyć informację o czasie, czyli na przykład agregujemy wszystko w buforze, a zaczynamy go parsować dopiero jak przerwa w odbieranych danych przekroczy...
Przejrzałem dokumentację i mam 2 wiadomości. Te trzy układy kodują bity danych w ten sam sposób, tj. bit 0 trwa 100 µs, a 1 - 200 µs. Problem w tym, że wysyłają w ramce ich różną ilość. Mogło być tak, że w zależności od daty produkcji/rynku/dostepnosci itd. stosowali różne układy. W każdym razie MM53226 wysyła 256 różnych kombinacji, a SAA1250 - 1024....
Mam w domu system z RS485 pracujący na 250kbps, bez kwarcu na wew RC 8MHz. Długość ramki 35 bajtów. Działa bez błędów. To, że działa to żaden dowód, że tak jest poprawnie. W jednostkowych przypadkach należy brać poprawkę na to, że ma się po prostu szczęście. Długość ramki danych jest bez znaczenia, gdyż zapewne używasz UART, a ten synchronizuje każdy...
Witam, To jest schemat ramki. Podczas obsługi CAN interesuje nas CAN ID - czyli nr ID ramki, długość ramki oraz dane. Podany schemat dotyczy CAN w wersji 11bit i tak naprawdę nie obsługujemy poszczególnych bitów bo robi to za nas np. sterownik PLC. Pozdrawiam,
Bardzo chętnie bym użył status byte ale u mnie sytuacja prezentuje się jak na obrazku poniżej. Nie mam "status byte" :(. http://obrazki.elektroda.pl/9867144000_1... Co do Twojego pytania na priv to zrzut programu do diagnostyki ET200S jest zrobiony na bazie WinCC jako jeden z ekranów SCADA. Jeśli chodzi natomiast o diagnostykę ET200S...
O ile producent sterownika miał głowę na karku, to nie zastosował gołego UART ani RS232, tylko różnicowe RS485 lub 422 możesz rozwinąć dlaczego tak uważasz i czemu byłoby lepiej/gorzej? Dodano po 14 na długość ramki z danymi wpływa ustawienie w sterowniku czy jest podłączony regulator pokojowy zwykły czy TECH to brzmi logicznie, bo sterownik TECH dorzuca...
Jeśli nie masz opisu protokołu komunikacyjnego, to pozostaje inżynieria odwrotna sygnału i testy naprowadzające na informację o temperaturze. Narysuj sobie wykres na podstawie zrzutu danych i zacznij analizować, z jakim kodowaniem możesz mieć do czynienia, jakie są długości ramek danych, itd. Dla ułatwienia analizy dodam, że prawdopodobnie dane nie...
Jeśli wszystkie kanały mam ustawione na DMA, to rozumiem że ten Callback będzie dopiero po przesłaniu całej długości ramki?
Przeczytaj dokładnie jak się liczy długość ramki w STM ach. To taki hint
Witam Korzystając z bibliotek stosu TCP/IP dla AVR i ENC28j60 ze strony tuxgraphics.com chciałbym zaimplementować obsługę DHCP. Niestety maksymalna długość ramki jaką mogę wysłać to około 220 bajtów. Czy ktoś może wie jak zwiększyć maksymalną długość ramki? Próbowałem na wiele sposobów, ale nie potrafię sobie z tym poradzić. Pozdrawiam
Np UART może sobie sprzętowo to wykryć jak przerwa jest dłuższa niż długość ramki. Proponuje zapoznać się z RM
Tak właśnie!Zgodnie ze wzorem na siłę powstałą w polu magnetycznym F=B*J*L (F-siła B-indukcyjność J-prąd L-długość cewki) po przekształceniu tego wzoru widać że prąd zależny jest od długości cewki (czuli jej gabarytów) i indukcyjności (jeśli to jest np.prądnica ze stojanem wykonanym z magnesu stałego to czym mocniejszy magnes tym większy prąd)
Sprecyzuj dokładnie miejsce o którym piszesz-czy nagrzewanie ma miejsce na całej długości ramki czy tylko w narożniku-którym.
Poprawność transmisji bajtu nie zależy od długości ramki (bloku danych). Od długości ramki zależą za to niewątpliwie: - czas potrzebny do pewnej i poprawnej resynchronizacji (do przerwy pomiędzy ramkami) - czas potrzebny do retransmisji błędnie odebranej ramki. Z tego powodu głosuję za krótszymi ramkami (a co to znaczy "krótsza" - to już zależy od...
Rozpoczynanie i zakańczanie transmisji tzn. ramki? Wogóle to jakie masz wymagania co do prędkości i długości ramek?
Ustawienia 9600 8N1 długość kabla raczej nie ma znaczenia bo wszystko się dzieje u mnie na biurku ponadto nie mam problemów z odbiorem danych które posyłam do ARM. Podglądnąłem transmisje w programie serial monitor i problem polega na tym że ARM wysyła mi różne długości ramki czasem casem 8 tyle ile trzeba czasem 1,3 bajty Najczęściej odsyła 8 bajtów...
MODBUS to w głównej mierze to protokół i hula po wielu mediach, ale CAN jest najmniej trafioną opcją, chociażby ze względu na długość ramek. . A w czym cię ogranicza długość ramek? Wiadomość do 4095bajtów -> ISO 15765-2 Jeżeli w samochodach się da, to dlaczego w domu nie? Wszystko zależy od długości przewodów, ale Can przewiduje max 1Mb. MODBUS, Dlaczego?...
Jak chcesz to maksymalnie uprościć to możesz przyjąć długość ramki dla zadanego requesta. Gdy dostajesz bajt w przerwaniu inkrementujesz flage , jak doliczysz do założonej długości to analizujesz ramke. Na początek to wystarczy aby zrozumieć podstawy
Napisze dokładniej o co chodzi Wysyłam poprzez RSA plik ~100KB(wartości kolorów pixeli) Potem w funkcji 'wyrzucam' te dane na wyśw i towrzy się obraz. Tylko jeśli moja funkcja będzie się zbyt długo wykonywała, lub prędkość będzie za duża, to zdarzy się, że pominę bajty dbierane z RSA, Dlatego chciałbym wyliczyć jaka może być max prędkość badów jeśli...
nie wiem czy wszystkie są takie same, ale: różna długość ramki, protokół podobny do profibus ASCII, potrzebne jest zapytanie aby otrzymać dane (nie pamiętam jakie zapytanie), trzeba wyzwalać programowo.
Teraz już nie krzaczy źle miałem ustawiona długość ramki:) Problem z resetowaniem występuje tylko wtedy gdy jest obsługiwany wyświetlacz:/ Mimo tego że na wyświetlacz znaki były wyświetlana poza przerwaniem.
Nie no maksymalnie to udało mi się osiągnąć transfer 390kB/s ale przy wydłużeniu ramki do 820B. A, że ja chcę to wykorzystać głównie do przesyłania stron NAND flasha to wykorzystałem 512B + mały naddatek. Generalnie korzystając z funkcji API wszystko poszło. Maksymalna prędkość jest już jednak uzależniona głównie od długości ramki, którą wysyłamy. U...
Tak zgadzam się z tym .Jeden tor nadaje a drugi odbiera jak w RS422.Długość ramek waha się 5,5ms do 6,7ms a bit 100µs.
tylko UART. 1 bajt niech będzie kodem diody a następne czym tam sobie chcesz. Ramka np o stałej długości lub zakończona odpowiednim znakiem.
Marekos - Chyba nieuważnie Przeczytałeś dyskusję, chodziło mi o to, że nie widzę sensu dla ograniczania rozległości magistrali tylko po to żeby uzyskać 2,5 Mb/s, że nie ma to sensu właśnie z uwagi na przeznaczenie i założenia tego systemu. A tak BTW. odnośnie jeszcze mojej odpowiedzi dla Nagitatora, to powinienem jeszcze skomentować tę linijkę: "Dlatego...
I tak właśnie jest jak napisał Krauser ... nie ważne jaką długość ramki ustawię i tak cały czas jest 16 bitów - oscyloskop to potwierdził. Spróbuję później przenieść LCD na SPI2.
W prądnicy i w silniku są pary biegunów na wirniku i w stojanie. Na wirniku są widoczne pary biegunów jako neodymy N i S i są wbudowane (wklejone) powtarzalnie na stałe. W stojanie też są pary biegunów.Można go łączyć w trójkąt lub w gwiazdę i liczba nie ulegnie zmianie. W trójkąt liczy się cewka pojedynczej fazy, ma dwa bieguny (ramki), cewka faza...
W F3 ST zrobiło całkiem inaczej konfigurację długości ramki (można wybrać rozmiar inny niż 8 lub 16bit) więc nie przejmuj się tym bitem. Sprawdź czy masz wszystko na pewno dobrze połączone i sprawdź konfigurację GPIO jeszcze raz :)
Z tą długością i negacją to nie mój pomysł, ale niezły. Właśnie tak to można traktować. Jeżeli kolejny bajt nie jest negacją poprzedniego, to przyjmujemy, że to nowa długość i czekamy, aż następny będzie negacją. Dodatkowo można narzucić ograniczenia na dozwolony zakres długości.
RealTerm znam i mam go przetestowanego ale niestety nie ma on możliwości sterowania nową linią w trybie hex, można ustawić tylko stałą długość ramek a ja potrzebuję czytać zmienną. Nic takiego nie znalazłem do tej pory. N.
Teraz dołóżmy do tego jeszcze fakt, że takie cuda można sobie robić na sprzętowych sterownikach które działają w czasie rzeczywistym. Np. ModbusRTU Funkcja 3 - Read Holding Registers (at)57600: Zapytanie: 8B + 3,5 znaku = 2ms ======Czas na generacje odpowiedzi...======= Odpowiedź - 5B + 2xN + 3,5 znaku = 4,8ms dla 10 rejestrów Odpowiedź - 5B + 2xN...
Czytając to co pisze autor już po pierwszych założeniach widać że porywa się kolega z motka na Księżyc . Już w założeniach widać braki w wiedzy dotyczące komunikacji po can a realizacja zdania na podstawie błędnych założeń jest po prostu pasmem niepowodzeń . Ramki w can się nie gubią , zgubił się jedynie autor już przy samych założeniach .Ja bym chciał...
FT232 też jest full speed. Jeśli coś masz nie tak to z pewnością nie jest to wina FT. Pełną prędkość uzyskasz wyłącznie przy wykorzystaniu max obsługiwanych długości ramek. kolejne ramki są na USB wysyłane co ok. 1ms, więc np. stosując ramki 10 bajtowe, można uzyskać max 10*1000 bajtów/s.
A właśnie, że jest sposób na efektywne wykorzystanie DMA przy odbiorze, nawet dla zmiennej długości ramek. Wystarczy ustawić przerwanie od stanu IDLE dla kanału szeregowego U(S)ART, które generowane jest po zakończeniu transmisji. W tym momencie wszystkie dane są już w zdefiniowanym w DMA obszarze pamięci.
To też testowałem :) Próbuje teraz na ESP-12 i mam tak samo. Czyli krzaczki na wszystkich możliwych baud. Masz możliwość odłączyć konwerter i skrosować TxD z RxD, żeby sprawdzić, czy w ogóle transmisja jest poprawna? Długość ramki i parzystość ustawiona poprawnie?
Sygnał PWM do standardowych sprzętów modelarskich (pomijam rozwiązania cyfrowe - niszowe - Graupnera, Futaby itp) to impulsy czasowe - aktywny jest stan wysoki. Nie mówimy tu o % wypełnienia bo ramki mogą mieć różną długość a impulsy też różny czas trwania. Sygnał jest asynchroniczny - tzn nie jest w żaden sposób taktowany. Jedynie długości impulsów...
To skąd wiesz kiedy się kończy ta ramka? Jeśli nie przyjdzie żaden kolejny bit przez ileś ms, ma jakiś znacznik końca, któryś z początkowych bitów określa jej długość?
może też być to wina taśm łączących elektronikę panelu lcd z jego szkłem. spróbuj poruszać, lekko powyginać, górną częścią ramki matrycy na całej jej długości
Obiecane źródła i schematy. Układ korzysta z taktowania z modułów. Więc źródło taktowania procesorów oczywiście trzeba ustawić na zewnętrzne. Komunikacja idzie po UARCie. PWM na razie jest jeden i powiela kanał SERVO7. Normalnie jak się chce PWMa to trzeba zrezygnować z jednego serva. Albo wydłużyć długość ramki komunikacyjnej żeby przesłać więcej danych....
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,...
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...
Puszki Simet? Można kupić ich wkręty, mają spoko gwint. Lub zwykłe do drewna 2.5-3x długość dowolna. W zależności też jaki osprzęt (ramki). Mają ciut cieńszy gwint niż te wyżej i czasami jak jest gips w otworach czy inny problem, mogą "rozwiercić" otwór.
(at)Mat_91 Nie ma potrzeby wysyłać kontrolną paczkę danych na początku ramki komunikacyjnej, chyba, że ramka będzie miała różną długość - wtedy to jak najbardziej, pierwszy bajt np. z informacją o ilości wysyłanych znaków, bajty danych i CRC. Ze stałą ilością bajtów jest łatwiej. Odczekujesz, aż uzbierasz określoną liczbę bajtów po czym porównujesz...
Witam, OlkuM, Twój program natomiast traci zawartość UBRRH, więc jeżeli będziemy chcieli zmienić długość ramki, ilość bitów stopu, czy to jest równoznaczne ze zmianą szybkości transmisji ? Panie Asembler, z pisaniem programów jest podobnie jak z jazdą autem, wszyscy robią to trochę inaczej i wszystkim wydaje się, że są w tym najlepsi ;) pozdrawiam
Ostatnia linijka na stronie 46: Note: Every Modbus frame has a maximum limit of 20 variables (40 register). Jednorazowo możesz odczytać 20 zmiennych czyli zawartość 40 rejestrów. Jest to maksymalna długość ramki danych. Skopiuj sobie wysyłane zapytania o zmienne które cię interesują (kompletne ramki z CRC). Zawsze będą takie same. Wtedy możesz używać...
Witam Przecież napisałem że sprawdziłem w PortMonitorze oraz własnym programie. Oprócz ramki (przykład powyżej w VB z Visual Studio), gdzie wykorzystałem funkcję SerialPort.Write(bytes(),offset,length)) nie są wysyłane inne dodatkowe znaki. Przykład ten jest kodem działającym, więc na 100% nie ma entera czy innego znaku kończącego ramkę. Protokół transmisji...
Witam, odkurzę trochę temat, bo mam pewne pytanie z modbusem. Powiedzcie, czy dobrze rozumuję, czy jeśli w urządzeniu np. udostępnię 400 rejestrów 16bit, to odczyt wszystkich to będzie w ten sposób, że adres początkowy to np 1, więc master będzie prosił o dane od 1 do 125 w jednej ramce, czyli offset 1 a długość 125, w kolejnej ramce offset 125 i długość...
Według pdf parametry UART to: 9600 bps Check bit: None Stop bit:1 bit wysyła 24 bajty ze spacjami, pierwsze dwa są stałe, później długość ramki i dane. Kiedyś wysyłałem dane do playera TF16, gdzie format danych był taki sam i robiłem to przez printbin. Teraz wydawało mi się, że Inputbin załatwi sprawę. Wiem jakie są parametry, tylko nie...
Proszę doprecyzować co za ramki chcesz przesyłać. Samo CRC to tylko suma kontrolna obliczana na podstawie zawartości ramki. Ja bym zrobił mniej więcej tak: - jakiś bajt startu, stały dla wszystkich ramek, np. FF - dwa bajty długości treści ramki (komunikatu) - suma kontrolna CRC obliczona z wartości długości i treści - jakiś bajt kończący, np. F0 Mikrokontroler,...
Podłączyć do USB np. Arduino Nano. Arduino będzie odbierać informacje z portu szeregowego (dwa bajty) i konwertował na na ramkę o długości jedenastu bitów.
Ponarzekałeś, powymyślałeś, ale ani kawałka kodu nie wkleiłeś i na dobrą sprawę nie napisałeś, z czym masz problem. Slave SPI na mikrokontrolerze musi wysłać dwie ramki danych przed zinterpretowaniem pierwszej odebranej - tego nie przeskoczysz. Jeśli pierwsza ramka od master zawiera jakieś polecenie dla slave - to odpowiedź na to polecenie może nastąpić...
Witam. Jak można dokładnie odmierzyć krótkie czasy w Delphi? potrzebuję kontrolować długości ramek transmisyjnych rs232 i nie wiem jak to wykonać. Potrzebuję odmierzać czasy z dokładnością co najmniej 100µs (0,1ms) czy jest to w ogóle wykonalne ? w czasie trwania tej procedury nie mam potrzeby wykonywania innych czynności więc dopuszczam w tym...
Wydaje mi się, że jeszcze 1 ramka będzie ci potrzebna. Linki od dużej ramki muszą się zbiegać do mniejszej. Ważne, żeby miały tę samą długość. Mniejszą ramkę możesz podnosić na 1 lince za pomocą kołowrotu.
Zero wymusza się przez zapis 0 do SPIx->DR, którego u Ciebie brakuje. Gdybyś zapisywał wartości ósemkowo, a nie szesnastkowo, byłoby łatwiej czytać. Ustawiasz coś w CR2 po włączeniu SPI - błąd. Najpierw zapisz CR2, potem CR1. Tak było w moim kodzie, który popsułeś. Jaką masz ustawioną długość ramki SPI? Zgaduję, że 8, a powinno być 12. Wydaje Ci się,...
Witam . Zacznij od tego jakie to procesory . Zapewne jakieś dwa mikrokontrolery . Większość współczesnych mikrokontrolerów posiada sprzętowe bloki komunikacji (I2C ,SPI ,UART itp.) chyba że chcesz użyć jakiegoś archaicznego Z80 lub jakiejś gołej 51 . Co do wymiany danych . Master wysyła ramkę danych slave to odbiera , interpretuje , wykonuje i odsyła...
Bufor cykliczny - tablica o długości N bajtów. Dwa wskażniki na elementy tegoż. Pierwszy wskażnik do odczytu (wo), drugi do zapisu (wz). Początkowo oba wskażniki ustawione na początek bufora. Zapis: Procedura przerwania po każdym odebranym bajcie zapisuje go w miejscu wskazanym przez wz. Następnie wz jest inkrementowany i jeżeli wskazuje na element...
Bufor cykliczny w najprostszym przypadku możesz rozwiązać w ten sposób: 1) tworzysz tabelę o długości rozmiary bufora (sam tworzę nieco większe niż długość ramki, czasami nawet kilka ramek mieszczę w jednym buforze) 2) zapisując odebraną daną (czyli liczbę) zapisujesz ją pod adres buffor[indeks] po czym od razu po zapisaniu nowej wartości inkrementujesz...
Nic nie analizuję. Odbieram stały początek ramki składający się z adresu i pola określającego długość reszty danych. Dzięki temu wiem ile ich mam jeszcze odebrać. Jeśli jestem paranoikiem to dodatkowo opatruję to CRC, dzięki czemu wiem, że header jest ok. Cały pakiet kończy się CRC, jeśli liczę je na bieżąco to prawidłowa ramka musi dać w wyniku CRC=0....
Witam, nie wiem czy dobrze diagnozuję problem, ale skonfigurowałem sobie mikrokontroler w CubeMX jak urządzenie USB CDC. Po podłączeniu do PC pojawia mi się wirtualny port COM i mogę sobie odbierać dane wysyłane przez procesor, a także nadawać ramki danych. Natomiast zdziwiło mnie, że maksymalna długość ramki jaką mogę wysłać to 8 znaków, po wysłaniu...
Można zrobić coś takiego, że tuż przed znakiem '=' jest liczba określająca nr tempx - można ją przerobić na byte i wpisać to tablicy pod tym samym indeksem. Czyli nie trzeba wysyłać całej ramki, tylko to co uległo zmianie (np. temp13=45). Program automatycznie wyłuska nr temp (13) i wpisze do tablicy temp[13] liczbę 45. Takie rozwiązanie uniezależnia...
Do przesyłania bardzo małych porcji danych typu sygnał z czujnika raz na jakiś czas Ethernet mało się nadaje, to jest kobyła. Żeby przesłać np. kilka bitów czy bajt danych musisz nadać ramkę o rozmiarze niemalże 100 bajtów (38 bajtów - cały narzut + 46 bajtów - minimalna długość zawartości ramki).
Dlaczego wstawiłeś pół alfabetu jako zmienne? :O :) Timer2 powinieneś włączyć po odebraniu pierwszego bajtu, a wyłączyć i zresetować po odebraniu ramki lub zresetowaniu bufora. Chyba, że ma działać cały czas, wtedy zerować Ramkatimeout odbierając pierwszy bajt. Zerujesz bufor, ale nie zerujesz In_pos . Wyłącz przerwanie Urxc , gdy to robisz. Bezpieczniej...
Wg dokumentacji jest przynajmniej jedna 0xfe, nie udało mi się odgadnąć kiedy centrala wysyła więcej. Ja czekam tylko na ramkę 0x55 dlatego początek ramki to dla mnie 0xfe 0x55, mój program wyłapuje tylko ten typ ramek. I dla ramki 0x55 długość jest właśnie 18.
To ciekawy temat i w zależności od tego jak bardzo będziesz chciał system rozbudować można brać pod uwagę. -wykrywanie zajętości kanału przez dane (odrzucanie zakłóceń). -ramkowanie danych -określenie maksymalnego czasu nadawania -adresy urządzeń -zapamiętywanie adresów dostępnych w otoczeniu -rozgłaszanie swojego adresu -stała/zmienna/maksymalna długość...
I ja mam pytanie :) Jeżeli przerwa między ramkami (która jest stanem wysokim na linii) wynosi minimum 3.5T to jak ja odróżnić od 4 (i więcej) jedynek?? Druga sprawa .. Czy najpierw należy odebrać cała ramkę, a dopiero później ją obsłużyć? Czy na bieżąco powinienem sprawdzać 2 pierwsze bajty, choćby po to żeby wiedzieć czy informacja jest wysłana do...
Tylko że w tym drugim nie mogłem sobie poradzić z odczytem Slider(regulacja PWM). Przede wszystkim proponuje Ci kończenie komunikatu jakimś znanym sobie znakiem (\0 \n \r \f \b czy tez cokolwiek innego, lub przyjęcie stałej długości ramki. Pomoże Ci to wykrywać koniec komunikatu. W pierwszym kodzie jak wpiszesz: fromAndroid.startsWith("PWM") To oczywiście...
W ilu linijkach napisałbyś driver do UART, żeby zawierał Timeouty, kilka enum' ów do wyboru, prędkości, bitów parzystości, długość ramki, bity stopu, włączenie przerwań, wraz ze zmianą ich priorytetu, wszystko oczywiście w osobnych plikach .h i .c? Do tego sprawdzić czy to wszystko działa, i napisać Unit testy które są wymagane w czymś większym? na...
Dobry Wieczór, Mam pytanie odnośnie montażu paneli LED. Mam w domu sufit podwieszany z płyt gipsowych na konstrukcji drewnianiej. Zamontowałem panele LED - 120x30 oraz 60x60. Świecą i prezentują się super. Pomiędzy ramką panela, a płytą gipsową są delikatne nierówności, szparki. Chciałbym to uszczelnić akrylem (głównie dla efektu wizualnego). Tu pojawia...
Witam Kiedyś robiłem sterowanie ze sterownika S7-200 przez RS-485 z falownikiem Dandoss VLT serii 5000. Zależnie od wybrania długości ramki to można sterować tylko częścią parametrów jak start, stop, prędkość itp. a otrzymywać status przetwornicy. Przy wyborze długiego komunikatu można robić wszystko, nawet zmieniać i odczytywać dowolne parametry. Ta...
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...
też używam tego softu, przedtem źle napisałem .. com2com zamiast com0com.. pogadałem z kilkoma osobami i wychodzi na to że problem leży po stronie sprzętu, że bufory portów mogą powodować opóźnienia które soft może wykrywać jako przerwy w paczkach .. i stąd bierze się ten problem.. najlepiej zrobić jakiś znak początku ramki i końca, ewentualnie start...
Ok, dzięki a mógłbyś jeszcze mi napisać "Do czego służy minimalna długość ramki ? " Oraz jeszcze mi się przypomniało padło pytanie różnica między "fast-forward" a "fragment-free". Co do odpowiedzi na temat "fast-forward" nie miał zastrzeżeń, powiedziałem, że wysyła ramke natychmiast po odebraniu adresu odbiorcy i wystarczyło, ale na temat "fragment-free"...
W koderze PPM na każdy kanał jest podawany impuls o długości od 700 do 2200ms ; ta długość zależy od położenia drążka sterowania. Podane zakresy mogą trochę się zmieniać w zależności od modelu aparatury. Średniej pozycji serwomechanizmu odpowiada impuls o długości ok 1500ms . Ilość impulsów w ramce to 2-8 w zależności od liczby kanałów. Tutaj nie powinno...
Jak zaznaczyć koniec ciągu (koniec tablicy)?? to już od Ciebie zależy. Możesz ustalić stałą ilość znaków, wtedy tą funkcję wywołujesz n razy , możesz na końcu wysyłać jakiś szczególny znak który nigdy napewno nie powtórzy się w innym miejscu. Ten znak gdy zostanie odebrany oznaczać będzie koniec tablicy. Wybór znaku zależy od ciebie. Jeśli transmitujesz...
Tak, oczywiście stała długość ramki, Wstępnie szacuję: 3 bajty kod odbiornika 16 bajtów danych 2 CRC - choć tu nie jest wymagane bo mogę powtarzać całe ramki, odbiornik z danych ramki w stosowanym prze zemnie algorytmie powinien kontrolować poprawność pakietów. Ma dużo czasu bo kolejny inny rozkaz otrzyma najwcześniej za 60 sekund. W tym czasie mogę...
-UART Jaka prędkość transmisji? Jakiej długości ramki danych? -Timery Programowe + PWM (Na jednym timerze"2") Dlaczego programowe? Ile ich będzie, co będą robić? -Czujnik HC-SR04 na timerze ICP Z AVR mega wybrałbym mega1281. Ma 6 timerów, w tym 5 16 bit. Nie wiem czy wszystko co potrzebne jest wyprowadzone na piny i być może potrzebna będzie mega1280....
http://eurodrut.pl/ 2700 ramki ÷ 54 żłobki = 50 ramek w żłobku (aktywnych odcinków) 54 żłobki ÷ 3 fazy = 18 żłobków na fazę. Każda cweka ma dwa boki (ramki) 54 żłobki ÷ 2 boki = 27 cewek 27 cewek ÷ 3 fazy = 9 cewek na fazę Długość ramki 12,5 cm × 2700 =33750 cm = 335,5 m Faza waży 850 g × 3 fazy = 2,55 kg. Drut Φ 1 mm Φ wirnika 115 mm , szer...
No w sumie excray, to by się zgadzało ;) patrzyłem tylko na to, że ta wartość zapisuje się do UBRR i zapomniałem że tam jest URSEL. Dobra a wracając do ustawienia długości ramki, czemu przy takim ustawieniu nie działa ?? I co z tymi wartościami domyślnymi UCSZ0,UCSZ1 ?? Gdy sprawdzam je np w symulacji na Atmel Studio czy przez if'a to wychodzi, że są...
Używam konwertera rs484>USB podpiętego pod raspberrypie 3b+ No własnie miałem zamienione + z - na połączeniu do pieca aż głupio się przyznać :) Dane już lecą Podrasowałem trochę skrypt miszka Dodałem wyliczanie i weryfikację CRC Wydaje mi się że większość dekoduje z automatu Zerknijcie czy u was tez daje taki output : ramka: 680a005045d60b0aa016...
1. kodowanie SIRC to właśnie kodowanie Space encoding ;) 2. Post data bits to dodatkowa ilość bitów (z twojego opisu wynika że są 2) które trzeba wysłać tuż po wysłaniu właściwych bitów DATA czy tam ADDRES i DATA (z tym że z twojego opisu wynika że te 2 dodatkowe bity są zawsze równe 0) 3. min_repeat oznacza, że dokładnie trzeba całą ramkę w całości...
Witam, Właśnie sprawdziłem jakie dokładnie znaki są przesyłane przez Rs232 i oto co zobaczyłem: <STX> 525.555<CR><LF> [len=14] <STX> 525.555<CR><LF> [len=14] <STX> 525.555<CR><LF> [len=14] <STX> 525.555<CR><LF> [len=14] <STX> 525.555<CR><LF> [len=14] Jak widać...
Moim zdaniem użycie tutaj TCP jest błędem i powinieneś użyć UDP. Kto o zdrowych zmysłach otwiera połączenie TCP "forever"? P.S. Jakie jest "sizeof(Dev2PcState)" ? Jaka jest długość bufora ramki TCP? Co z retransmisją pakietów niedostarczonych?
Witam, Sytuacja wygląda tak: uC - który zbiera dane jest połączony przez uarta do uC (Stm32). Teraz pytanie jak wydajnie odbierać komendy z uC który zbiera dane. Mam zrealizowane odbieranie danych w przerwaniu ale realizacja zadania w przerwaniu odpada, program się sypie ponieważ obsługa zadania trwa długo w porównaniu do danych przychodzących, danych...
Ogólnie nie ma zapisane w MP3 jaka jest długość utworu. Trzeba sobie to albo policzyć z pliku (zsumować wszystkie ramki) albo przybliżyć (mało dokładne przy VBR) http://www.codeproject.com/KB/audio-vide...
rs485 długość ramka zmienna długość ramka ramka cyfrowa
samsung monitor matryca satel czujka pożarowa wykrywacz złota
schemat diora calypso schemat diora calypso
Delikatny szum w lewym kanale wzmacniacza Marantz Repairing a Faulty Volvo V50 Instrument Cluster