Bufor ten ma 3 znaki ale po pojawieniu się pierwszego znaku od razu jest on przesuwany bo bufora programowego. Czyli działa to jak jak by bufor sprzętowy miał tylko 1 znak.
Obsługa ustawionej maski portu wygląda tak: WaitCommEvent(hComv, fdwEvtMask, null); Maski mogą być różne i ustawia się je tak, jak Pan napisał: setcommmask(handle,maska)
Czy jest funkcja szukania samych cyfr z buforu rs232? To są odpowiedzi z modułu SIM800. Bazuję na czymś takim: If Pinc.3 = 0 Then Waitms 750 Print "AT+CCLK?" ; Chr(13) ; 'zapytanie o datę i czas Waitms 50 Date_str = Mid(odb_txt , 20 , 8) Time_str = Mid(odb_txt , 29 , 8) End If Ale coś się dzieje i nawet wyświetla litery z odpowiedzi modułu. Da się jakoś...
Zadam jeszcze jedno pytanie. Czy karty PCMCIA sprawdzą się w tym przypadku ? Jako bardziej 'sprzętowe' ?:)
To znowu ja... staram się teraz zrobić 2 bufory: nadawczy i odbiorczy - nadawanie i odbiór w przerwaniu. Jeśli ktoś ma opanowany ten sposób transmisji to proszę o sugestie i porady. Kod mojego programu zamieszczam niżej. Niestety nie działa tak jakbym chciał - nie wiem jak zainicjiować nadawanie. Gdy ustawie flage TI to jest generowane przerwanie ale...
Bufor cykliczny trzeba zorganizować na RS232 oraz wysyłanie na przerwaniach i po kłopocie.
Najważniejsze to chociaż troszkę samemu najpierw pokombinować i ew później dopytać co i jak ;) ale po co ten Inkey? toż jak już zajdzie zdarzenie Bytematch - to znaczy, że w twoim buforze jest już co najmniej jedeń łańcuch tekstowy, którzy przyleciał z Rs232 i zakończony znakiem ENTER (13) .... w związku z tym wystarczy dać polecenie Input linia i już...
Znalazłem, spróbuję zastosować i ewentualnie będę się pytał dalej. Dzięki.
Jeżeli masz na myśli bufory "wewnątrz" układu UART to sterowanie XON/XOFF jest możliwe tylko dla nielicznych realizacji UART i odbywa się przez programowanie odpowiednich rejestrów UART-u ( próg zadziałania, próg wznowienia, kody znaków XOFF i XON). W wiekszości przypadków sterowanie XON/XOFF dotyczy obsługi programowej, realizowanej na przerwaniach...
Proszę bardzo lecz jetem pewien, iż nie wniesie to nic. Skoro tak twierdzisz, to po co w ogóle pytać? Masz błąd o którym Ci pisałem. Tyle że wtedy pisałem, że "warto na przyszłość", a teraz mówię że masz błąd. To: if (tflags & USART_FLAG_TXE) wykona się niezależnie od tego czy masz włączone przerwanie czy nie. A wiec występuje u Ciebie (jednak)...
witam ponownie wykres działa w trzech kolorach:) jak go teraz zapisać ale jako np .jpg
Co będzie jak jednym z kodów przesłanych do mikrokontrolera będzie znak o kodzie 0? Odp: Nie zostanie zauważony. Dlatego INKEY() powinno się poprzedzać operacją sprawdzenia zajętości bufora UDR.
Konwersje byte->string otrzymuje się przy użyciu funkcji Str. W drugą stronę działa funkcja Val.
Witam Mam następujący problem po przekompilowaniu programu pojawia się kilka błędów Error 5 oraz Error 320. Błędy te wyświetlają się wyłącznie po zadeklarowaniu bufora Config Serialin=Buffered, Size=254 Config Serialout=Buffered, Size=254 W załączniku przesyłam zrzut ekranu. Proszę o pomoc pierwszy raz z czymś takim się spotkałem Pozdrawiam Michał [/img]
Udało mi się znaleźć bardzo ciekawy [url=http://www.atmel.com/dyn/resources/... Atmela. Przeczytaj go dokładnie i wykonaj wszystko tak jak tam opisano. Myślę, że pomiędzy podanym w tym dokumencie buforze (strona 3), a zaemulowanym RS232 nie koniecznie musi być konwerter poziomów - MAX232. Pokazany tam bufor wzbogaciłbym o...
Nie posiadam tego GPS'a jeszcze, tak to bym chętnie podłączył. Czyli wnioskując, to: - zasilić go z 3,3V - by uzyskać logikę w standardzie TTL (5V) muszę użyć bufora
Jakoś tak to opisałeś, że nie jestem pewien czy o to chodzi... Może należałoby zamknąć tę procedurę w pętli. Nie wiem skąd się bierze wartość bufora, ale Do Until wartość_tego_bufora = 0 pętla będzie działać, aż będzie pusty (zakładając, że 0 to pusty bufor).
A może użyć funkcji ftoa() ?? Zamienić na ASCII i przesłać kolejno jako ASCII do PC, a w PC zamienić z powrotem na float dane odebrane z UART. Do funkcji ftoa() ładujesz np. tablicę jako bufor.
Nic nie piszesz o ustawieniach portu (transmisja, dane, bity stopu, sterowanie transmisją). Czy to na pewno masz dobrze ustawione? No i przy każdym napłynieciu bajtu definiujesz zmienną Buffer a później wywołujesz podprogram wyświetlania. Z jaką prędkością działasz, bo według mnie nie nalezy wyświetlać bezpośrednio z podprogramu odbierającego dane z...
Jeśli zastosujesz próbki WAV zapisane jako ADPCM to długość odtwarzanego utworu w tej samej jednostce pamięci znacznie się powiększy - a jest to dość prosta kompresja. http://pl.wikipedia.org/wiki/ADPCM Co do pamięci to w 8051 jest jej niezmiernie mało. Może podejdź do tego inaczej. Niech PC przez RS232 wysyła plik tak duży jak chce, a 8051 będzie go...
Od strony AVR napisz to od nowa. Napisz asynchroniczną obsługę wysyłania danych po RS, bo tak jak masz być nie może - blokujesz przerwania na długi czas potrzebny na wysłanie danych przez wolny interfejs szeregowy. Kolejna rzecz - jak ten program działa? Na losową pozycję bufora zapisuje odebrany bajt z PC (w dodatku blokując cały MCU do czasu jego...
Jest pewien mechanizm przy nadajniku i odbiorniku rs232 - bufor FIFO. Dzięki niemu przerwanie zostaje zgłoszone nie co bajt, ale co pewną porcję bajtów (lub jeśli przychodzi tylko jeden bajt, przerwanie zostanie zgłoszone ze sporym opóźnieniem równym czasowi odbioru bajtów aż do poziomu przy którym bufor by się zapełnił, ażeby wygenerować przerwanie)....
Bufor to zapewne u ciebie łańcuch tekstowy AnsiString ? Wtedy robisz coś takiego. AnsiString temp1 = Bufor.SubString (1,5) ; // do temp1 wpisze podciąg od 1 do 6 znaku z Bufor AnsiString temp2 = Bufor.SubString (6,5) ; teraz w temp1 masz łańcuch tekstu X1234 a w temp2 Y5678 temp1 obcinasz o X (np. temp1=temp1.SubString(2,4) lub temp1.Delete(1,2);...
Profesjonalnie to można programować w każdym języku, tylko trzeba go po prostu znać i umieć stosować w praktyce co najważniejsze. Dla takich początkujących jak ty Bascom powinien być jednym z lepszych języków tym bardziej, że nie rozumiesz jeszcze przerwań. Bascom daje ci gotowe rozwiązania w tym zakresie na maxa - popatrz sobie na Config Serialin ........
Niestety lipka :)
Używam biblioteki pana Mirka. [syntax=c]/* * mkuart.c * * Created on: 2010-09-04 * Autor: Autor: Mirosław Kardaś */ #include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include "mkuart.h" // definiujemy w końcu nasz bufor UART_RxBuf volatile char UART_RxBuf[UART_RX_BUF_SIZE]; // definiujemy indeksy określające ilość...
MAX232 to konwerter napięć, dość powszechnie wykorzystywany prz komunikacji po RS232. 74HCT125 to bufor a MB15168to driver do LED -ów. Niestety ale nie mogę znaleźć jakiegoś gotowego rozwiązania a dla mnie to jest o wiele za wysoki poziom do programowania.
Tzn. czego poszukujesz? Jak działa FIFO? Przecież pierwsze lepsze wyniki z Google'a ci pokażą jak to jest zrobione. Musisz zrobić tylko kontroler dla kolejki FIFO w układzie nadajnika i tyle jest roboty. Jeżeli już chcesz jak działa FIFO to masz tutaj http://www.ti.com/lit/an/scaa042a/scaa04...
Ogólnie to coś działa ale....... 1. Czemu dla takiego użycia ITOA wyskakują ostrzeżenia ? 2. Myślałem że jak zdeklaruję wielkość bufora mniejszą niż zmienna np http://obrazki.elektroda.pl/8716705500_1... [syntax=c]#include <avr/io.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "usart-lib/usart.h" void...
W takim razie czy mógłbyś polecić jakieś rozwiązanie, jak zrealizować USB bezprzewodowo? - bezprzewodowe HUBy USB są raczej rzadkością... A może adapter USB-RS232 (on zadziała jak bufor?) (transmisja bezprzewodowa) RS232-USB?
P.S. Oczywiście, że przerwania lepsiejsze:) Zwłaszcza z buforem :)
Fajnie by było gdy byś przykładowo napisał co takiego przesyłasz.........jakie dane?? Mógłbym to przy okazji sprawdzić u siebie. A tak przy okazji z kodu wynika że pomimo tego czy jakiś znak jest czy nie w buforze to co 500ms "czyści" Ci sie wyświetlacz, spróbuj zamiast inkey() użyć waitkay(). Bo waitkay() powoduje zatrzymanie programu na czas napotkania...
[syntax=c]x = 0; for (p = bufor; *p >= '0' && *p <= '9'; p ++) x = x * 10 + *p - '0';[/syntax]
jak zadeklarować te zmienne? A np. tak dim Bufor as string * 16 ' 16 - maksymalna długość odebranych danych dim Bufor_znak as byte dim Bufor_flaga as byte
No tak na marginesie to bardzo ciekawy efekt ci wyszedł ;) A na poważnie to działasz na ATmega32 więc jak możesz próbować nawet tworzyć bufor w RAM o rozmiarze 2026 ??? nie wspominając o większym - skoro cały RAM tego procka to 2kB. Zastanowiłeś się nad tym? hmmm widzisz tutaj twoim problemem jest na razie prawidłowe zorganizowanie binarnej transmisji...
Nie wiem jak jest w STM, ale czy UART czasem nie ma swojego bufora? Jesli tak, to DMA prześle szybko dane, aż do zapełnienia bufora (bo nie musi czekać na ich wysłanie), dopiero, po zapełnieniu bufora, kolejne dane przez DMA są transmitowane w rytm ich wysyłania przez UART, czyli wolno.
Po wczytaniu danych do bufora znaków 'incomingPacket', wpisuje znak '0' za ostatnim wczytanym znakiem - jest to tzw. terminator łańcucha tekstowego.
O ile mi wiadomo, sam silnik bazy danych dowolnego typu (Firebird nie będzie tu wyjątkiem) nie zapewnia bezpośredniej współpracy ze sprzętem. Generalnie silnik bazy danych oferuje tylko "zorganizowany magazyn" tabel podzielonych na kolumny i rekordy. Zapis i odczyt danych jest zadaniem programów, które można samemu tworzyć wykorzystując API danej bazy...
Daj więcej listingu tego programu, bo tak to możemy sobie zgadywać. Na pierwszy rzut oka to nie wiem po co to waitms w funkcji odczytu ??. Przez to mogą się gubić znaki mimo, że masz bufor.
Urządzenia spełniające Twoje wymagania to bufor RS232, na przykład taki:[url=https://www.wut.de/e-88642-ww-... Link. Niestety rozwiązanie kosztowne. Może ktoś wykona podobne urządzenie na zamówienie, ale to też kosztuje.
Wyjaśnijmy jedną sprawę: Programowanie AVR-ów szeregowo odbywa się po innych pinach niż transmisja szeregowa (są to piny, jak już napisałeś SCK, MOSI, MISO, wyjątek stanowi ATMEGA128 ale to już inna historia) Radze te piny wyprowadzić oddzielnie w celu późniejszego programowania. Nie możesz ich podpiąc do standardowego RS232, bo tak nic nie zaprogramujesz....
Jest wiele sposobów. Możesz na przykład przepisać znaki od przecinka do końca buforu w drugi bufor pomocniczy i wówczas użyć funkcji atoi. PS. zamykasz stringa znakiem zerowym? ;)
Skorzystaj z opcji RTS/CTS.
pewnie piszesz w bascom ,wiec masz kod odbierania danych (całych stringów ) w przerwaniu :) : Config Serialin = Buffered , Size = 20 do If Ischarwaiting() = 1 Then '1 - odebrano znak,0 - pusty bufor Call Read_rs232 End If loop Sub Read_rs232 Dim Bufor As String * 24 Input Bufor Noecho end sub
Witam Program odczytuje wiadomości wysłane przez RS232. Korzystam z komponentu ComPort. Chce przy jednym evencie OnRxChar odczytywać jedną wiadomość Dodano po 2 niestety kozystając z count zgarne cały bufor... a ja chce tylko te 20 bajtów danych w tym momencie.
Napisz jaki to procesor i kompilator. Z tego co widzę, to jakiś mikrokontroler - skoro "ręcznie" odczytujesz znaki z bufora RS232, to czy na pewno masz odpowiednio zinicjalizowane standardowe strumienie stdin i stdout? Pozdrawiam, Dr.Vee
Przyklad: ramka ma 50 bajtow, w buforze masz 60 bajtow, poprzez ComPort1.ReadStr(odebrane,Count); odbierasz 60 bajtow ,czyli 50 ramka +10 nastepnej ramki, dlatego pytalem co robisz z odebrane , bo jezeli przetwarzasz pod wzgledem tylko jednej ramki (50 bajtow) , to te 10 idze do smietnika. przy nastepnym odczycie bufora masz wlasnie ramke z ucietymi...
Może masz błąd w obsłudze bufora??
Mnie zastanawia jedna rzecz, skoro korzystasz z przerwań to po jakiego grzyba tam input? Zobacz jak mozna to rozwiazac: Odebrano: Disable Urxc ' wylaczenie przerwania na czas trwania aktualnego 'Jesli licznik znakow jest mniejszy od maksymalnego rozmiaru bufora to... If Licz_znaki < Max_znakow Then '...zwieksz licznik znakow, do buforu transmisji...
Już chyba wiem, w czym może być problem. Nie mam mostków na liniach 4-6 i 7-8 portu COM. Aplikacja na PC nie jest w stanie wyczyścić bufora RS232 przed odebraniem danych. Czy to może być spowodowane brakiem w/w mostków? ---edit--- Niestety mostki nie były problemem.
Najpierw spróbuj może dodać: ...ale jak ustawię ręcznie bit UDRE w UCSRA który oznacza że bufor jest pusty, także nic się nie wysyła. To nie jest argument. Flag przerwań w AVR generalnie nie da się ustawiać programowo, niektóre można tylko wyzerować. Akurat UDRE można wyzerować tylko poprzez wpisanie bajtu danych do rejestru UDR, flaga ustawiana jest...
Ja też mam trochę lamerskie pytanie... Oscyloskop (amatroski) = AD7863 + procek (jaki polecasz) + bufor (?) + transmisja po rs232... Warto kombinować ?
Zastosuj kodowanie kanałowe z wykorzystaniem kodu splotowego. Kod o sprawnosci R=1/3 może usunąć do ok 30% bez ponownej retransmisji danych. Wartosc ta może wzrosnać jeżeli zastosujesz bufor z przeplotem w nadajniku oraz rozplotem w odbiorniku. Polecam ksiazke "Podstawy cyfrowych systemów telekomunikacyjnych" Pozdrawiam!
Korzystam również z komponentu APro. Robię to z wykorzystaniem maszyny stanów w następujący sposób: 1. Wysyłam polecenie 1 i ustawiam np. Stan1, 2. Gdy urządzenie odpowie, to w zdarzeniu OnTriggerAvail sprawdzam jaki jest ustawiony stan i w zależności od tego parsuję odpowiedź, 3. Wysyłam polecenie 2 i ustawiam np. Stan2, 4. Gdy urządzenie odpowie,...
...jeśli już jednak o tym mowa to nie żebym chciał męczyć cię o tą rozbudowaną funkcję przerwania, ale może chociaż tak w 2 słowach powiesz mi jak "to w locie" dekodujesz? tzn - przy okazji na jakim procku minimum warto się za to zabierać? M8? M16? M32? czy jeszcze większy? Bez przesady ;) Jak jest >=512 RAM-u , to wystarczy do smsowania. Co do ilości...
A jeśli chodzi o AVR to: ON źródło_przerwania nazwa_podprogramu [ NOSAVE ] gdzie: źródło_przerwania - symboliczna nazwa źródła przerwania, nazwa_podprogramu - etykieta określająca gdzie znajduje się podprogram obsługi przerwania. jako żródło przerwania można: URXCprzerwanie układu sprzętowego UART – odebranie znaku UTXCprzerwanie układu sprzętowego...
Saleae mają bufor, który chroni układ przed zniszczeniem, ale prawidłowe RS232 ma +9V dla stanu niskiego i -9V dla stanu wysokiego, stąd dla Saleae konieczna była inwersja stanów. Saleae 8 przyjmuje napięcia w zakresie 0..5V ale na jego wejścia bezpiecznie można podać napięcie z przedziału -25..25V.
Problemem jest opóźnienie i wielkość bufora BT . Po prostu upływa czas odpowiedzi i transmisja się sypie to samo jest przy niektórych przejściówkach USB rs232 . Jeśli program jest dość stary a transmisja wprost może nie udać się go połączyć po usb czy radio. poza tym twój moduł jak widać nie obsługuje chyba wszystkich znaków bo są różnice przed i za...
Charakterystyczną właściwością bufora cyklicznego (kolejki FIFO) jest to, że wskaźniki początku i końca (odczytu i zapełniania) przemieszczają się niezależnie - każdy w swoim tempie. Stąd w Twoim programie indeksy powinny być niezależnymi zmiennymi globalnymi/statycznymi. Przypisanie liczniku=usartbufferlicznik zakłóciłoby normalny tryb pracy bufora...
A nie możesz na czas programowania po prostu odłączyć kabelka RS232? Druga możliwość - jak na płytce masz MAX232 to na wyjście RxD ze strony TTL daj bufor trójstanowy, taki np. w SOT23, jego sterowanie podepnij pod RESET. Programowanie uaktywnia reset i odłączy maxa od UART. Dla pewności to samo możesz zrobić na TxD, coby rzeczy z programatora nie wychodziły...
Z opisu metody Read kontrolki SerialPort "Reads a number of bytes from the SerialPort input buffer..." wynika, że pobiera ona bajty, które się znajdują w buforze kontrolki. Możesz otrzymać mniej znaków niż żądasz, jeśli przed upływem ustalonego timeout'u w buforze kontrolki nie znajdzie się odpowiednia liczba znaków. Czy i na jaką wartość ustawiłeś...
używasz tego Config Serialin1 = Buffered , Size = 20 ??? przecież to jest włączenie bufora dla sprzętowego RS232 w procku, pokaż jeszcze raz teraz dokładnie te swoje dwa programy
jaka będzie różnica Pierwszy odczyta tyle bajtów, ile czeka w buforze do odczuty, druga 8 bajtów: choć nie wiesz, ile jest w buforze - 3, 8 czy 17. Do tego, może głupio to zabrzmi, ale czym jest tu (w RS232) buffor Bufor, nie buffor... Bufor służy do tego, żeby pomieścić nadchodzące z portu kolejne znaki. Gdyby go nie było, musiałbyś obsługiwać je...
Witam Na port rs232 dostaje pewne dane chciałbym je wszystkie zebrać i wrzucić do zmiennej. Coś na zasadzie bufora. Jak powinienem podejść do rozwiązania tego problemu. Pozdrawiam
Czy mam to rozumieć tak, że są to bity znaczące jedynie dla RS232 i nie są widoczne w jego buforze?
Pliki amorficzne (zapewne o takie chodzi) nie posiadaja formatowania w postaci linijek. Dla wlasnych clelow mozesz ustawic bufor odczytu (i zapisu) pliku na pewna ilosc bajtow i po kazdym wyslanym buforze dodatkowo dodawac znak #13(a raczej #13#10) aczkolwiek musisz uwazac aby nie dopisac ich do pliku (poszczegolnego bufora)
PL2303 - Nie bardzo, za mały bufor PL2303HX - OK OTi Uart Tx Line - Nie polecam (jako RS232 zrywa transmisje) ARK Tx Line - Nie polecam (jako RS232 zrywa transmisje) FDTI - Najlepsze ale i najdrozsze wyjście Odnośnie allegro, 99% super sprzedawców kabli nawet nie wie czym tak naprawde handluje, a tym bardziej "nie mamy czasu na pierdoły typu otwieranie...
tam mam ustawiony stos (zresztą standardowo).... dzięki chłopaki - czyli muszę niestety zmniejszyć trochę bufor odczytu dla transmisji rs232... pozdrawiam
Mnie się wydaje, że być może UART_TRansmit nie sprawdza czy nie nadpisuje bufora kołowego...
Dodatkowe urządzenie to dodatkowe problemy musi spełniać kilka założeń żeby było uniwersalne a przy rs485 ma do spełnienia kilka zadań : 1. sterowanie transmisją 2. posiadać buforowanie 3. Wymaga więcej części niż kwarc za 3pln ;) Poza tym żadne z tych urządzeń nie działa bezwzględnie zawsze i bez końca . Dlaczego tak się dzieje to bardzo proste o ile...
Głównym problemem była... MOXA Sprawa ruszyła po zmianie na najzwyklejszą przejściówkę USB->RS232
Jeśli wysyłasz dane z układu uP co 500ms to program, który odczytuje dane z bufora, możne sprawdzać czy nie pojawiły się w nim nowe dane i jeśli zostały zapisane nowe dane to wtedy je dopiero odczytać. Na pewno jest coś takiego opisane w książce RS232-praktyczne programowanie. Jesli nie to poszukaj na http://4programmers.net/search.php?q=obs...
[syntax=vbnet] Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim ReceivedText As String ReceivedText = SerialPort1.ReadLine MsgBox(ReceivedText) End Sub [/syntax] Jeśli dane są wysyłane co 5 sekund, to możesz ustawić Timer na 4 sekundy i zobaczysz co wyświetli się w okienku MsgBox . Jeśli twoja...
kiedyś firma CONTEC ( albo KONTEL ) oferowała na targach moduł konwertujący RS232 na przesył po jednej parze - służyło to do połączenia bufora taryfikującego do kompa. Wyciągało to nawet do 100 m chyba, tyle że przy 9600.
ale kombinujesz!!! co ci szkodzi podlaczyc CTS i RTS przeciez scalaczek RS232 ma dwie line wejsciowe i 2 wyjsciowe. Jak sie juz uparles no to mozna zrobic tak: robisz bufor na np. 16 bajtow. Ramka przychodzacych danych z kompa 16 bajtow.I teraz jesli chcesz aby kolejna ramka danych nadeszla musisz wyslac do kompa potwierdzenie gotowsci.Oczywiscie na...
5 i 6 dana zostaje zapisana do buforu - wczesniej nie byla sprawdzana wielkos buforu i dlatego jezeli program nie zdazyl odebrac dana[2] to najprawdopodobniej aktualizowal ja z kolejnej 2 paczki. teraz teoretycznie program czeka na 2 bajty a wydaje mi sie ,ze szybciej sie wykonaja aktualizacje kontrolek niz wysylanie bajtow. najlepiej z boku sprawdz...
Jezeli uzyjesz 8 maxow 232 to wejscia wszystkich nadajnikow (nozki 10,11) laczysz razem do nozki TxD procesora. W ten sposob wysylasz komende z adresem do wszystkich urzadzen. Z odbiornikiem troche gorzej. Musisz uzyc 3 kosci z szesciokrotnym buforem z wyjsciem typu otwarty kolektor np. LS07. Wejscia kazdego bufora laczysz z wyjsciami max-a (nozki9,12)...
A może rozwiązanie sprzętowe: na jakimś AVRku linię RX łączysz z konwerterem RS485/TTL, nóżkę TX łączysz z komputerem za pomocą konwertera TTL/RS232 (lub USB), ustawiasz sobie UBRR tak aby uzyskać prędkość najbardziej zbliżoną do 20800, odbierasz dane, zapisujesz je do bufora o takiej wielkości aby wszystkie się zmieściły, zmieniasz UBRR na którąś ze...
RS232 to własnie tylko warstwa fizyczna. To, co i w jaki sposób będziesz przesyłać, zależy tylko od Ciebie i można to zrobić rożnymi warstwami fizycznymi. Spokojnie możesz testować bez żadnych konwerterów które dołożysz później. I2C na tych odległościach, bez buforów nie pójdzie. Z dobrymi przewodami i niską częstotliwością zegara do 2m jako tako ruszy...
Toć to nie wystarczy zrobić gdzieś czegoś w stylu /dev/comx > /log/moj_plik.log ? Dawno nie używałem unixa ale coś w ten deseń można pokombinować (Jedynie nie wiem czy to nie zamknie od razu "sesji" po odczytaniu z bufora danych UARTu)
Bez NAJMNIEJSZEGO problemu można zrobić to o czym piszesz panie autor i to z prędkościami RS232 rzędu 115200 a nie tak ślimaczymi jak 1200. A do tego jeszcze wiele innych zadań może ten sam procek wykonywać - mniej więcej tak jak to opisał kolega wyżej. Ja podobne układy robię i programuję w języku C i nie mam z tym żadnych tego typu problemów, które...
Dzieki za pomysły. Co do RS485: jak zmusić np. GPS nadający dane co jakiś czas w UART, żeby np. nadawał tylko wtedy kiedy inni nie nadają (z tego co wyczytałem to tak działa RS485), czy np. konwerter RS232-RS485 posiada bufor i sam kontroluje dalej przesył? Co do multiplexera to ciekawy pomysł - czy masz może jakieś gotowe rozwiązania? Może nie do końca...
ale czy bufor to kwestja języka? wydaje mi się, że tu idzie o zasadę. Ja sobie zrobiłem bufor do rs232 w formie tabli, przerwanie dokłada na stosik znaki a procedurka zdejmuje , wystarczyła 8 bajtowa tabelka żeby nawet pisanie na 4 ręce nie powodowało przepełnienia. Zrób tak samo. Niech przerwanie odkłada ci na stos komendy a procedura niech zdejmuje...
klops_mops ---> masz dwa wyjścia żeby ci nie mrugały te wyświetlacze w czasie PRINT'a ;) - innymi słowy mówiąc aby procedura wysyłania RS232 nie zakłócała procedury multipleksowania 1. prostszy sposób - zwiększ tą kocią prędkość RS232 na jakąś ludzką - chociaż 9600bps to już praktycznie nie powinno ci mrugać a jak dasz każdą większą to już będzie coraz...
Był kiedyś taki projekt na AT89S252 (8031) z ROM, RAM i parę buforów komunikowało się z mim po RS232. Coś podobnego do dzisiejszego Arduino niestety nie potrafię go znaleźć - może ktoś pamięta jak się to nazywało.
Jeśli chcesz stabilnej komunikacji na 433MHz bezpośrednio z portu, sprzętowego RS232 to najtańszy moduł z buforem, sterowany komendami AT, to HC-11. Jeśli to mają być moduły za 5zł musisz kupić dwie pary, opracować protokół transmisji lub skorzystać z gotowego np X 10 RT. Muszą być dwie pary bo jeśli korekcja wykryje błąd ramki to odbiornik wyśle rozkaz...
Akurat w tej instrukcji sam ustawiasz wielkosc bufora (bo to nie jest bufor portu tylko twoich danych). jezeli czytasz w onrxchar to ilosc danych w buforze portu masz w zmiennej Count
No raczej właśnie tak jak piszesz - pierwszy znak nadać "ręcznie" a kolejne nadadzą się same dzięki przerwaniu. Innej sensownej możliwości nie widzę. Z drugiej strony, żeby takie nieblokujące nadawanie w pełni wykorzystać potrzebujesz bufor z którego znaki będą nadawane. Wtedy możesz wykorzystać jedną funkcję, np. Send("Ala ma kota"), która skopiuje...
Jeżeli nie ma błędu przy kompilacji to raczej char jest traktowany jak jednobajtowy znak ANSI, a QueryDosDevice w wersji A. Próbowałeś utworzyć bufor o znacznie większym rozmiarze?
Przed wyłączeniem programu musisz zamknąć uchwyt Kolega chyba nie zrozumiał. Po restarcie komputera jak uruchomię program to on się zawiesza, kiedy zaczyna czytać z bufora RS232. Jeśli włączę HyperTerminal otworzę port poznije go zamknę i wyłączę HyperTerminal to mój program już działa poprawnie i mogę go włanczać ile razy chcę (do następnego restartu...
Witam! Czy w centrali można programowo zablokować wyjście danych z RS?W adresie 800 połączenia wychodzące są odblokowane a parametry RS ustawiłęm ; 9600,CR+LF,8bits,Even.Mam problem z buforem Zetkom!
1. Zdiagnozowałeś, czy na pewno problemem jest wysyłanie a nie odbieranie? 2. Czy format wysyłanych danych jest poprawny? (uwzglednienie bitu/ów stopu) 3. Co z negocjacją prędkości transmisji? 4. Jak w systemie ustawione jest sterowanie przepływem danych dla portu COM? 5. Gdzie zmniejszyłeś bufor?
Ani podciąganie napięciem 3v3 nie zmienia stanu działania ani zasilenie z większego konwertera poprzez 3V i 5V, poprzez putty jak wcześniej napisałem działa echo i łączność pomiędzy dwoma konwerterami które są podłączone do osobnych laptopów. Po prostu w trakcie gdy większy konwerter pcha sygnał Tx nie dochodzi on w ogóle do Nodemcu. Jak spróbowałem...
W buforze wszystkie dane z RSa są z enterem i końcem linii. może nie być początku informacji ale zakończenie zawsze jest Tę kwestię możesz pominąć jest marginalna i nie powinna mieć kluczowego znaczenia dla poprawności odczytu danych jeśli 13 nie wystąpi to po 4096 zerowanie: Dim znak As Integer Dim ciąg As String Dim licznik As Integer licznik = 0...
Patrząc na schemat z 1. postu, to zabezpieczenie akumulatora podłączyłbym od strony akumulatora, a nie zasilacza. Masz rację, też tak myślałem, ale nie pamiętam, dlaczego zdecydowałem w końcu dać to na odbiorze. Zanim moduł zabezpieczający akumulator odłączy urządzenia, serwer się wyłączy, a router i switch są do tego przygotowane. Na serwerze masz...
Witam, a propos Platana, Czy ktoś ma schemat tego kabla RS232? Bo mi przepadł.
Witam, Chciałbym napisać sobie własny prościutki mały bootloader, który zapisywałby tylko pamięć Flash (bez eeprom). Oparty o wczytywanie danych przez RS232. Oczywiście chciałbym to napisać w C. Program miałby działać ze stałą prędkością np 9600. ale na razie mam teoretyczne pytanie czy dobrze rozumuję jak do tego podejść i czy już na tym etapie nie...
Poczytaj o instrukcji Config Serialin. To jest bufor wejściowy w USART w bascomie.
Pomysł z czytaniem całych linijek do jednego bufora wydaje mi się dobry. Po wczytaniu całej linijki program może sprawdzić pierwszy znak i na jego podstawie przekazać zawartość bufora do odpowiedniej procedury obsługi. Po powrocie wczytywałby następną linijkę. Jeśli w czasie obsługi jednego komunikatu przyjdzie następny, to chyba nic się nie stanie...
Szczegóły, które podałeś zazwyczaj nie interesują przeciętnego klienta. Mam Prolifica - działa z niektórymi urządzeniami, zawsze dużo wolniej niż prawdziwy RS232. Np: wgranie programu do sterownika przez Prolifica to czas kilkukrotnie dłuższy. Być może ma na to wpływ rozmiar buforu, o którym piszesz. Mam też FTDI - działał wszędzie gdzie go testowałem...
bufor rs232 rs232 bufor odczyt bascom bufor rs232
avensis funkcja radio wentylatora mercedesa bezpiecznik zasilacza komputera
głowica telewizyjna lampowa głowica telewizyjna
Lodówka nie działa: ciepło, mrożenie, awaria - naprawa i opłacalność Lodówki Amica AKE210 - lata produkcji 2009-2010