Pracowałem ostatnimi dniami nad małym kontrolerkiem, sterowanym przez RS232. Obsługa niektórych poleceń, wydawanych do niego, trwała nawet po kilka milisekund i... okazało się, że użyty przeze mnie 16F628A ma bufor wejściowy USARTa rozmiaru... 2 bajtów. Tak, to nie pomyłka :| Dlatego postanowiłem napisać obsługę cyklicznego bufora wejściowego - o rozmiarze...
Witam Pierwszy raz pracuje na builderze i zaczely sie problemy z komunikacja przez rs232. Niestety nie wyswietla mi wartosci lub nie zczytuje informacji z rs232. Kod programu: void __fastcall TKom::BitBtn_PolaczenieClick(... *Sender) { HANDLE hNumPort; char lpBuffor_read[1]; DWORD RS_ile; DCB dcb; int retGetCommState;...
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]
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...
Witam. Kolejnym urządzeniem, które chciałbym przedstawić jest programator przeznaczony dla rodziny mikrokontrolerów firmy Motorola/Freescale Semiconductor. Programator powstał na potrzebę projektu realizowanego na studiach na rodzinie HC08. Schemat bazuje na notach katalogowych oraz przykładach znalezionych w internecie. Sercem układu jest popularny...
$crystal = 8000000 'częstotliwość kwarcu $baud = 38400 Dim Zmienna As Byte , Zmienna2 As Integer Dim Ignorowane As Byte , Id As Byte , Dane As Byte Dim A As Byte , B As Byte 'Config Serialin = Buffered , Size = 20 Zmienna = 5 Do Waitms 500 Cls Lcd Id ; " " ; Dane ; " " ; Zmienna ; " " ; B Inputbin Id , Dane , Zmienna ,...
Mam problem z transmisją danych. Na PC mam uruchomiony terminal (terminal v1.9b), i jak wysyłam treść z AVR do portu RS232 to terminal poprawnie odczytuje wysłaną treść. Natomiast problem tkwi w transmisji w drugą stronę. Żeby sprawdzić czy poprawnie AVR odbierze dane wysłane z RS232, napisałem tak program żeby po odebraniu treści wysłanej z terminala...
Witam!!! Mam nastepujący klopot, odbieram dane z urządzenia po rs-232. komunikacja dziala. Bufor po odebraniu danych zawiera 10 bajtów w postaci: X1234Y5678 Moje pytanie brzmi, jak mozna z tego bufora "wyciagnac" te dwie wartości, i przypisac do zmiennej w programie, tak by było ze X=1234 oraz Y=5678 ?? Probowalem Operacji logicznych tak jak w uP ale...
Skorzystać z odbioru danych w przerwaniu od UARTA. Mały przykład dla ciebie: $regfile = "M32def.dat" 'Deklaracja typu mikrokontrolera $crystal = 8000000 'Czestotliwosc oscylatora $baud = 9600 Const Max_znakow = 11 'rozmiar bufora Dim Bufor As String * Max_znakow Dim Licz_znaki As Byte Dim Flaga As Bit Enable Interrupts On Urxc Odebrano 'przerwanie...
Witam wszystkich mam taki problem.Potrzebuję z aplikacji android wysłać cztery zmienne typu Word do procesora Atmega 32 i zapisać je w Epromie.Dane wysyłane w Srtingu. Na razie wysyłam dane z terminala z Pc-ta.Aplikację na Android pisze mi ktoś inny.Potrafię wysłać jedną zmienną nadaną jako String przekształcić na Word i zapisać ją w Eprom na procku...
Witam. Potrzebne mi urządzenie będące buforem przezroczystym transmisji po RS232, coś w rodzaju: [A]RS <---------------> RS[B] zamieniam na: [A]RS <-------> RS[BUFOR]RS <--------> RS[B] Bufor ma za zadanie robić za sniffer: 1. Przesyłać z najwyższym priorytetem dane z A do B następnie przesyłać odpowiedź z B do A 2. Po drodze dane...
oczywiście trzeba będzie zastosować MAX232 by dopasować napięcie Nie wiem, czy linie sterowania przepływem są w tym konwerterze stosowane, bo jeszcze ich nie używałem. o jakie linie chodzi ?? Port [url=]RS232 ma oprócz linii TxD i RxD znanych każdemu również linie sterowania przepływem. Tzn. jest to sterowanie tym kiedy oba urządzenie coś sobie wysyłają....
Czesć, Chcę oprogramować sobie komunikację z czujnikiem podłączonym do komputera przez zewnętrzny konwerter na RS485. Napisałem sobie krótki program w C++ którym chcę odczytać jego status, aczkolwiek nie odbieram żadnych danych main.cpp [syntax=c] #include <stdio.h> // standard input / output functions #include <stdlib.h> #include <string.h>...
Witam. Posiadam program, który komunikuje się ze sterownikami PLC. Mój problem polega na tym, że odczyt/zapis bufora rs232 spowalnia cały program. Wiem, że powinienem zrobić odczyt/zapis w wątku, w związku z tym prosiłbym o pomoc. Poniżej zamieszczam kod modułu odpowiedzialnego za komunikacje: [syntax=delphi] unit Srl_Com; interface uses WinTypes, WinProcs,...
Opiszę tutaj moje próby zaprogramowania w linuksie Mikrokontrolera ATtiny2313 z wykorzystaniem kompilatora języka C avr-gcc, programatora avrdude oraz Sample Electronics programmer. Schematów nie dorzucam ponieważ nie bardzo jest sens cały programator to tylko 3 oporniki podłączone do portu LPT do znalezienia w google w każdej chwili, reszta mojego...
Nie istnieje "prosty kod" realizujący transmisję szeregową w języku C. Po pierwsze: żeby korzystać z portu trzeba go przedtem odpowiednio skonfigurować. Po drugie: dane do i po transmisji umieszczane są w buforze. Obsługa bufora to całe zagadnienie, którego stopień skomplikowania mocno zależy od charakteru transmitowanych danych - raczej więc nie ma...
Cześć (at)jacteo Wiesz, że vista to prażka tu wszystko jest tak zrobione by maksymalnie zdenerwować użytkownika, a tym bardziej człowieka który coś tam grzebie w kodzie. Popraw sobie ten program na wersje z ComPort może coś pomoże ale widzisz, że u mnie też były jaja. Ponadto trzeba było sobie kupić laptopa z RS-232C w standardzie (albo firma mogła...
Witam wszystkich :) Postanowiłem zrobić sobie detonator bezprzewodowy 433MHz do odpalania moich petard ;) Komunikacja miedzy modułami to RS232. A to mój kod: KEY_START ma uzbroić ładunki(umożliwic odbieranie znaków po RS232),niestety wysłanie jakiegoś znaku z pilota jeszcze przed KEY_START uzbraja ładunki ponieważ kod z pilota jest już w buforze. Chciałbym...
Witam Chcę się przekonać czy ATmega2561 jest ok więc wymyśliłem że napiszę kilka tyś. linii po kolei numerowanych których treść wyślę przez rs232. Jakie było moje zdziwienie gdy po 200 liniach długość programu wynosi 7768B a użycie pamięci to 6232B. Jakoś dziwnie dużo. Podejrzewam jakiś błąd w bibliotece od rs232. Załączam oba pliki. [syntax=c]#include...
RS232->MAX218(3,3V)-~~~~~->74LVC245(5V) albo RS232->MAX232->74LVC245(3,3V)~~~~~~~~74L... Pozostaje jeszcze kwestia odpowiedniego sterowania tymi buforami. Jeżeli Twój uP rozpozna stany logiczne o H-3,3V to wystarczy zrobić dzielnik rezystorowy na wyjściach uP.
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ł...
witam ano poprostu wysyła kolejne bity każdego bajtu. Każdy bit istnieje jakiś (stały) określony czas na porcie. Tuż przed wysłaniem pierwszego bitu jest wysyłany bit startu (np zero, jeśli stanem spoczynkowym jest 1), po tym bicie "leci" jeden bajt, po nim bit(y) stopu i jeszcze ewentualnie bit parzystości (jeśli liczba ustawionych bitów jest parzysta...
Masz bardzo komfortową sytuację gdy używasz MAX232 ponieważ posiada on 4 niezależne bufory. Tak więc dwa bufory normalnie wykorzystuje się do dwóch linii Rx oraz Tx . W związku z tym pozostają jeszcze dwa i to właśnie je można wykorzystać do tego aby zasilać diodki LED, które mają migać. Wystarczy zrobić tak, że połączysz wejścia 2 buforków np dla linii...
jezyk C++ borland builder mam blad linkera wiec wystarczy to #include <vcl.h> a jesli caly kod to prosze //--- kompilować z borlndmm.dll cc3250mt.dll bcbsmp50.bpl ----------- //----RS_07.cpp------------- #include <vcl.h> #pragma hdrstop #include "RS_07.h" #pragma package(smart_init) #pragma link "CSPIN" #pragma...
Witam Temat te już kilkakrotnie przewijał się na elektrodzie ale niestety dalej nie mogę znaleźć odpowiedzi na dręczące mnie pytania. Ma do zrobienia komunikacje procesora 51 z PC po RS232. Program na PC piszę w c++ builder 6.0 na podstawie książki RS232 praktyczne programowanie. Mniej więcej wygląda to tak że na płytce mam panel operatorki a na komputerze...
... niewiele się dowiedziałem z powyższego posta.. pozdr. Masz rację, nie chciałem Ci narzucać języka. W Delphi technika może być taka, jak w poniższym przykładzie: var TH : Integer; npom : longint; lpcc : COMMCONFIG; stat : PComStat; const iblen = 1000; oblen= 1000; implementation function RS232Init : boolean; var dww : DWord;...
Przepraszam za grzebologię, ale postanowiłem to umieścić na forum, żeby był pożytek :] ( W związku z mailem, jaki otrzymałem :], Był on opatrzony tym tematem :] ) Kod programu na 8051 wysyłającego komunikat powitalny "AT89C51 ver. 1.0", a następnie odbierającego to, co wysyła komp i wyświetlającego na LCD. Prędkość transmisji 2400 b/s. ;------------------------------------...
Witam Mam następujący problem. Piszę program do komunikacji między urządzeniem a komputerem PC korzystając z interfejsu RS232. Niestety transmisja działa tylko w jedną stronę. Wysyłam skompletowaną ramkę do urządzenia i ono odpowiada zaświeceniem diody, ale bufor odbiorczy w PC jest pusty. Korzystam z laptopa oraz systemu VISTA. Początkowo miałem adapter...
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.
Witam, po długiej i ciężkiej pracy udało mi się zbudować układ. Docelowo ma to być sterownik, który będzie odpowiednio reagował na komendy podawane przez rs232 z komputera, również odsyłał znaki i sterował portami wyjścia/wejścia. Proszę o sprawdzenie programu i schematu, sterownik musi działać stabilnie i nie chciałbym czegoś pominąć. (w tym momencie...
Hi ! Co do sygnałów sterujących układu MCP2150 to: EN - podłącz go do VCC lub do pinu procka (EN jest monitorowane przez MCP2150 tylko w trybie NDM - Normal Disconnect Mode czyli gdy układ nie ma połączenia z PRIMARY DEVICE); DSR - podłącz do procka jeśli chcesz wiedzieć kiedy MCP2150 ukończy inicjalizacje po resecie lub włączeniu zasilania); DTR (wraz...
Ja ci radzę jednak wysyłać hexem stałej długości. Np coś takiego: #F,FFFF(enter) Następnie w obsłudze rs'a sprawdzasz jaki przyszedł znak i jeżeli jest # to reset licznika wejścia i zapisujesz dane do bufora. Jak przyjdzie koniec (czyli enter lub podobne) sprawdzasz sobie adres(odpowiedni znak) i przepisujesz sobie zmienne do innego bufora. Dodatkowo...
Zastosuj bufor: Config Serialin = Buffered , Size = 100 enable interrupts A oczekiwanie na znak zrób: Bufor_flaga = Ischarwaiting() : If Bufor_flaga = 1 Then Gosub Odbierz_uart Następnie procedura odbioru danych: Odbierz_uart: Bufor = "" Do Bufor_znak = Inkey() Bufor = Bufor + Chr(bufor_znak) Bufor_flaga = Ischarwaiting()...
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)...
Witam, mam nastepujacy problem: Do zrobienia mam program ktory odczytuje identyfikatory z DS1990 i zapisuje je w EEPROMie, program ma miec mozliwosc komunikacji z komputerem za pomoca RS232 (tzn. odczytywanie, zapisywanie i usuwanie kluczy). Zrobilem to w ten sposob: Gdy przyjdzie jakis bajt z rs232 generowane jest przerwanie i ten bajt jest zapisywany...
Witam, tworzę aplikację komunikującą się z urządzeniem za pomocą komend AT. Po przewertowaniu połowy internetu, przeczytaniu i wykorzystaniu przykładów z książki Daniluka "RS232C Praktyczne programowanie ..." nadal mam problem z właściwym odbiorem danych. Na obecną chwilę opierając się głównie na przykładach z w/w książki potrafię wysłać komendę/zapytanie...
Witam, Ściągnąłem kiedyś z tego forum kod do RS232 i próbowałem go przetestować, ale aby to zrobić potrzebowałem dodać do niego RxReady, który będzie sygnalizował zakończenie odbioru bajtu i jego wartość pozostanie niezmieniona do początku kolejnej transmisji. Niestety nie jestem zbyt dobry z VHDL i cały czas niepoprawnie ustawiam ten RxReady ponieważ...
Oj. Az tak mocno nie siedze w tym temacie. Wolalbym prostszy przyklad. Otoz dla przykladu: Instaluje kabelek i podmieniam drivery na te z plyty CD (system XP). Instaluje mi sie jako COM5 - do sprawdzenia we wlasciwosciach, ustawienie portu - zaawansowane. Wchodze z panelu sterowania. W przypadku klasycznego portu COM mam mozliwosc ustawienia przerwan...
Napisałem parser dla twoich wymagań.. cały bufor to jeden string.. dane zamiast pobierać z rs232 to są pobierane z pliku (dla lepszego testu w porcjach o losowym rozmiarze od 1 do 10 bajtów) i przekazywane do parsera... jedyne co musisz zmienić to źródło danych przekazywanych do AppendToBuf oraz samą obsługe odpowiedzi -> zamienić writeln na co kolwiek...
dziekuje za zainteresowanie. w godzinach nocnych udało sie. trzeba ustawic bufor!, i wtedy działa. jedna dziwna rzecz, bufor musi byc o 1 wiekszy niz liczba odbieranych danych i ZAWSZE TRZEBA odbierac o 1 mniej niz długość bufora. inaczej miesza kolejność odbieranych bajtow!!! a odbieram: inputbin S1 Inputbin D1 , D2 , D3 , D4 , D5 , D6 , D7 , D8 ,...
VB6 - wystarczy dodać mscomm na formatkę, ustawić odpowiednio parametry, otworzyć i nadawać lub odbierać. Fajnie działa tam obsługa eventów - nie potrzeba samemu obsługiwać - ustawiasz bufor do wysłania (swój bufor) i się wysyła. Jak twój układ w odpwoeidzi coś odsyła to też dostaniesz odpowiedni event.
Przy różnicy szybkości po obu stronach konwertera nie wierzę by dało obejść się bez bufora. Zdaje mnie mi się, że wiele współczesnych pecetów potrafi gadać szybciej niż 115 kboud, sprawdź dokumentację płyty głównej. Sprawdziłbym dostępne karty rozszerzeń czy potrafią być szybsze, wtedy problemem (chyba małym) byłoby od strony oprogramowania PC. Sprawdziłbym...
Witam, Chciałem podzielić się pewnymi spostrzeżeniami dotyczącymi zapisem pamięci "w locie" danymi transmitowanymi z PC'ta poprzez interfejs RS232. Otóż jak wiadomo czas potrzebny na zapisanie (fizyczne) danych (bajt, lub cała strona) dla typowej pamięci I2C wynosi około 5ms. Wynika z tego, iż aby "w locie" zapisywać takie dane nie korzystając z kontroli...
Witam.. mam problem dot komunikacji z telefonem poprzez rs232. podsluchalem ruch podczas laczenia z telefonem za pomoca hyperterminal.. jednak wynik jest zupelnie rozny od uzyskanego przeze mnie... ;| wiadomo, ze z modemem (telefonem) komunikujemy sie za pomoca komend AT. czyli wysylam np: AT otrzymuje OK i zaczyna sie problem.. ;/ mam wrazenie ze wysylam...
PORTB^=(0<<PB0); Powyższy kod nie robi nic. Nie wkleiłeś kodu funkcji USART_Init, a to może być znaczące - jeśli załączasz tam przerwania od usartu, to procek będzie się mógł resetować(brak funkcji obsługi przerwania) np po opróżnieniu się buforu nadawczego (przerwanie od wolnego buforu nadawczego).
Baud rate to rzeczywiście prędkość transmisji i musi być taka sama w obu urządzeniach, bo inaczej będzie kaszana. Data bits - ilość bitów danych w pojedynczym bajcie. Najczęściej jest to 8, czasem można spotkać urządzenia, które działają w ASCII i wymagają 7 bitów, reszta to egzotyka i komplikowanie życia. Stop bits - każdy bajt kończy się bitem stopu,...
Witam, Porównałem twój schemat z pdf'em MAX232, wg. mnie masz błąd na schemacie od strony wtyczki RS-232. Zobacz sobie w specyfikacji MAX232 w jakim kierunku są ustawione bufory. Nóżka 7 układu powinna iść na RX-2, natomiast 8 na TX-3. :!: Od strony adaptera podłączenie jest w porządku. Pozdrawiam
Witam Mam pytanie dotyczące transmisji RS232 w atmedze8 do komputera. Chodzi o wielkość bufora w USART. Realizuje komunikacje z komputerem w sposób: wysyłam w petli znak, mikroprocesor w odpowiedzi wysyła ciag znaków po 10, po odebraniu w komputerze wysyłam nastepny znak i tak 10 razy obecnie. Z moich obserwacji wychodzi na to ze bufor moj musi miec...
No na logikę tak ale nikt przecież nie bronił ATMELowi zrobić wszystkich rejestrów 16-to bitowych w taki sposób. Szczególnie że tak było by prościej bo wszystkie rejestry wtedy były by takiego samego typu. No ale może jest tak jak mówisz. Nie sądzę że ATMEL dawałby specjalnie dodatkowy "hardware" (czyt. kasa) skoro nie byłoby takiej potrzeby, wtedy...
Atmega128 + 32 przekaźniki + Max232+LM7805 :) ...albo we wspomnianym projekcie (AT90S2313) wprowadzić małe modyfikacje: 1. Dodać bufor z pamięcią na liniach wyjściowych między ATmega a tranzystorami. 2. Dołączyć pozostałe trzy bufory z servo równolegle do tego pierwszego. 3. Użyć wolnych linii do wybierania aktualnie sterowanego bufora. 4. Poprawić...
Pod koniec procedury obsługi przerwania SIG_UART_DATA po opróżnieniu bufora nadawczego chciałbym wywołać przerwanie SIG_UART_TRANS aby zmienić stan sygnału DE dla układu MAX485. W/g datasheet'u wystarczy ustawić bit TXCIE dla rejestru UCSRB aby spowodować wywołanie tego przerwania. Writing this bit to one enables interrupt on the TXC Flag. A USART Transmit...
Na chwilę obecną masz program tak skonstruowany że odbierasz dane pomiędzy linijkami programu. Jeśli program nie wykonuje się wystarczająco szybko albo wystąpi jakieś dłuższe przerwanie które go przyblokuje to zgubisz pakiet danych. Proponowałbym Ci zastosowanie bufora kołowego w przerwaniu od odbioru i w wątku głównym czytanie danych z tego bufora....
W pewnym układzie pracuje pamięć 24c16 zasilana 3.3V. Muszę ją odczytać i zaprogramować ale nie mogę jej wylutować. Zrobiłem prosty programator ze strony [url=] i mam problem. Sam układ programatora działa bo bezpośrednie podłączenie kostki 24c16 programuje i czyta bez problemu. Konwersję na 3,3V zrobiłem na tranzystorach MOS. Problem jest jednak z...
Witam, Robię projekt wizualizacji(wykresy) sygnałów z akcelerometru. Komunikację między PC a uC mam już zrobioną przez RS232. Teraz zabieram się do wykonania aplikacji w Builder C++ 6. Wzoruję się na książce "RS232 prog. praktyczne" p. Daniluka. Mam problem z konfiguracją(otwarciem, ustawieniem) portu Com pod którym mam RSa(com 6). W terminalu dane...
Jak odpalasz peryterium to zrób wszystko w najprostszej formie na pollingu bez buforów. Masz za dużo miejsc gdzie może nie działać. void USART_Transmit( void ) - to jest ekscentryczne i wysyłanie ze zmiennej globalnej - możesz uzasadnić takie coś?. Ciekawe jaki kod został wygenerowany. dlaczego nie jak Bóg przykazał void USART_Transmit(uint8_t byte)...
Dzień dobry, mam taki kłopot z delphi 10.2 + komponent Comport do komunikacji RS232. Czy ktoś spotkał się z takim problemem: Odbieram dane z urządzenia, które przez cały czas co 1 sekundę wystawia ramkę "#01;" lub "#02;" ( każde urządzenie wystawia swój adres). W terminalu ramki są bez problemu odczytywane, ale w delphi otrzymuję po jakimś czasie taki...
mscomm2.inputlen=1 Można dac to bo gdy tazmienna jest równa 0 to pobierany jest cały bufor A tam może być więcej niż 1 znak i procedura selekcji znaków nie zadziała poprawnie. Jest też zmienna o wartości zależnej od ilości bajtów w buforze. Opis wszystkiego jest w pdf. Jak Kolega ma ustawione parametry portu w terminalu gdzie jest ok?
Witam, Wykonałem sobie prosty program w Codesys w ST do odczytu danych z urządzenia po RS232. Ogólnie rozwiązanie działa choć nie jest optymalne. Chodzi głónie tu o odczyt całej ramki z RS232 a więc ramki która zaczyna się od znaku <STX> a kończy znakiem <ETX>. Poniżej moje rozwiązanie: [syntax=c] ////////////////////////odbieranie danych...
Chętnie zastosowałbym protokół modbus ale ponieważ chcę zrobić układ z podsieciami więc musze adresować dwubajtowo. Ale jak opracuję własny protokół to nie będę kompatybilny (zamierzam zarządzać siecią albo z PC albo z własnego sterownika) Jak to rozwiązać?. Kolejny problem to konwerter RS232/485 na PC (np z optoizolacją) i sterowanie kierunkiem nadawania...
Lpt to jest nic innego jak 17 pinów odzwierciedlonych w 3 portach 0x378 - 0x37a, rs232 to jest cały kontroler który ma 2 bufory, 2 rejestry przesówane, detektor błędów (parzystości), blok współpracy z modemem (wejścia/wyjścia: dtr,rts,dsr,cts,ri,dcd), programowalny generator częstotliwości więc system ustawi ten układ na jakąś częstotliwość, wpisze...
Witam !!! Nie napisałeś jakiego używasz kompilatora a w przypadku przerwań, wiele od niego zależy. W standardzie ANSI C nie opisuje się przerwań więc wyglądają one różnie. To kod dla standardowego kompilatora CodeVision. Obsługuje tylko odbiornik w przerwaniu pakując odebrany bajt do bufora. Pzdrawiam (M.) #include <mega8.h> #define RXB8 1 #define...
pracownia z prockow:) odrazu implementacja z przesylaniem danych przez rs232. moze sie polapiesz bo kod jest troche zaspamiony pozdro bufor EQU 030h;adres początkowy buforu danych index EQU 02fh;index ostatniego bajtu w buforze index2 EQU 02eh;index pierwszego bajtu w buforze ORG 0H SJMP RESET org 023h;przerwanie od portu szeregowego JNB ri, serout;w...
Sam Max nie potrzebuje żadnego programu - pełni on rolę bufora poziomów napięć. Zmienia sygnały z komórki (3.3V lub 2,7V) tak żeby mogły pogadać sobie z RS-em 232 (12V) - zainteresowanych opisem scalaka odsyłem do strony producenta. Wystaczy wpisać w google Max232.pdf :) Jeżeli chodzi o zestawienie transmisji to potrzebny będzie dowolny terminal RS...
Bawiłem się trochę transmisją przez 232 i od strony PC skorzystałem z gotowej klasy (C++) ze strony: [url=]CodeGuru Na pierwszy rzut oka może się wydawac skomplikowane, ale jak się wgryziesz, to da się to strawić. Całkiem fajna pomoc. Ja wprowadziłem tylko nieliczne zmiany i dzięki niej można bezproblemu transmitować nie tylko pojedyńcze bajty, ale...
Ale mi nie chodziło o bufor programowy - AVR-y serii mega mają wbudowany bufor sprzętowy. Opóźnienie odebrania jednego znaku o kilka ms (w przypadku bardzo rozbudowanych procedur) nie powinno więc spowodować problemów
Witam Jeśli byś użył scalaka 74HC595 lub 74HC4094 to możesz uzyskać efekt jaki chcesz. Wyjścia w tych scalakach są buforowane więc nie zmienia się nic dopóki ty tego nie zechcesz a w międzyczasie przesuwasz kombinację na odpowiednią pozycję.
Cześć, czy mogłby ktoś mi pomóc zmienic mój program lub napisac fragment kodu, w którm wysyłam tekst : "\033a" przez rs232. Nie wiem jak to wysłać, ale wiem, że musze urzyć bufora, bo inaczej nie wyslę- jestem początkującym programistom-proszę o pomoc. #include <windows.h> #include <stdio.h> int main(int argc, char** argv) { HANDLE hCom;...
Witam Znalazłem na naszym szanownym forum kod w C do obsługi portu RS232 (na PC): #include <windows.h> #include <stdio.h> int main() { HANDLE hCom; //uchwyt portu DCB dcb; //konfiguracja portu BOOL fSuccess; //flaga pomocnicza BYTE RS_buf; //bufor danej DWORD RS_ile; //ilosc bitow wyslanych //otwarcie portu COM1 z prawami RW...
niestety nie wysyła tego znaku, który wpisałam do bufora. 0x55 to U Ściągnęłam kilka terminali i na każdym pokazuje mi się w hex 0xE0 a w ASCII ŕ Wykorzystałam już LOOK RS232 Terminal Tera Term Pro Simple Term
Witam, to co jest w linku powinno chodzic, uklady na 3.3V sa odporne 5V, tzn komunikuja sie z ukladamy cufrowymi 5V bez problemu. Sprawdz polaczenia i protokol transmisji, moze na jakims innym ukladzie. Skoro ta pamiec jest w ukladzie to moze cos obciaza te linje ? Co do MAXxxxx to oczywiscie ze sie da, laczysz identycznie jak na schemacie w zalaczniku...
XPort ma tryb dokładnie taki jak opisujesz. Ustawiasz w XPort adres IP, port oraz protokół (TCP albo UDP) na jaki ma byc wysyłany każdy bajt z RS232 oraz jeżeli na odpowiedni port XPort(tez ustawiany w setup) cokolwiek zostanie przysłane to XPort odsyła to na RS232. Zadnego virtualnego COM, żadnego sterownika. Ja tego używam od dwóch lat bez problemu....
Witam! Potrzebuję informacji o obsłudze postu szeregowego w języku C, w linuxie. Czytałem, różne linki, ale nie za bardzo cokolwiek z nich rozumiem. Nie udało mi się sklecić w pełni działającego kodu. Z lpt sobie poradziłem, ale z tym nie potrafię. Programki kompiluję pod gcc, program powinien posiadać opcję komunikacji w 2 strony. Trzeba mi tylko funkcje...
Oczywiście już piszę.Przepraszam że od razu nie napisałem ale trochę późno już było.Problem był w ustawianiach prędkości transmisji a konkretnie we właściwościach połączeń trzeba było ustawić Bufor transmisji na niski .Zmieniłem również przerwania tak jak pisaliście na ISR.Pozmieniałem też ustawinia rejestru UCSRC.Oto kompletny program #define cbi(sfr,...
Po dłuższej przerwie wróciłem do tego. Dzięki (at)shootky , gdyby nie to, ze podałeś mi jak odpowiada Twój modem to bym tego nie zrobił... moja funkcja kończyła się warunkiem na wystąpienie znaku <CR> czyli odpadała na samym początku... zrobiłem funkcję, która na sztywno czyta mi 6 znaków i ładnie śmiga... na zadaną komendę AT odpowiada OK . Ponadto...
Witam, Mam program, który pobiera mi z procka jakieś dane. Za pomocą funkcji ComPort1.ReadStr(RevS,5); pobieram 5 bitów jakiejś informacji. Jednak mam wrażenie, że kolejne bity są doklejane do pozostałych już odczytanych. A ja chcę, żeby przed każdym wywołaniem funkcji bufor był czyszczony. Nie wiem czy moje rozumowanie działania RS232 jest prawidłowe....
Cześć Quine15 Sądząc po odpowiedziach niczego się nie dowiesz tu w kwesti programowania komunikacji w Delphi. Proponuje zajrzeć do książki "RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera" Daniluka. O ile dobrze pmiętam to były trzy wydania tych pozycji. Bardzo przystępnie napisane książki. Tłumaczenie kodu z C++ na Delphi...
Według mnie wszystko fajnie ale przydał by się interpreter G-kodu oraz zegar czasu rzeczywistego bo różne dziwne rzeczy będą się dział, większość systemów sterownia cnc właśnie posiada zegar czasu rzeczywistego do synchronizacji osi, Co do sterowania frezarką to jeśli kolega będzie chciał dalej tworzyć to polecam buforowanie i wysyłanie sygnałów z kontrolera...
Witam Piszę aplikację w VB6 komunikującą się za pomocą RS232 z procesorem. Procesor co pewien czas wysyła 3 znaki, kończąc enterem. Zdecydowałem się użyć kontrolki mscomm.ocx. Kontrolkę dodałem i przy uruchamianiu programu są ustalane jej początkowe parametry: Dodano po 1 Dodam, że próbowałem wysyłać dane z procesora z enterem i bez - bez skutku......
jezeli czytasz port asynchronicznie (invoke) to zlap Event typu OnReadComplete czy tam OnDataReadComplete, przerob to co przeczytales i wyczusc bufor. Nie znam VB ale po skladni widze , ze to .net. znalazlem takie cos : Imports System.IO.Ports Public Class MyFirstCOMProgram Public Delegate Sub StringSubPointer(ByVal Buffer As String) Dim WithEvents...
Witam Starałem się wyjaśnić platforma AVR lub zadania jaki ma wykonać NIE JEST TAK WAŻNE jak zorganizowanie komunikacji na RS232 za pomocą paczek HEX! Mogę wykorzystać dowolną większą kość AT! AT90s2313 Akurat tą kość mam gotową do pracy i kompletną do komunikacji na RS232. Czy jest możliwe zorganizowanie takiej komunikacji.? Potem wykona zadania......
No właśnie chciałbym poznać protokół - jak to jest robione np. w przejściówkach bluetooth. Chodzi mi o protokół pakietowego tunelowania danych rs232, np przez radio 802.15.4. Chciałbym coś takiego sam zaimplementować od nowa. Ważne są retransmisje i buforowanie. Docelowa prędkość to max 38400 baudów. Jeśli bluetooth SPP jest ładnie opisane to jutro...
Pokaż funkcję LCD_WriteText(), bo sądzić można, że jako parametr zawiera wskaźnik na tekst i nie służy do wyświetlania liczby 8-bit. Jeśli jest tak jak napisałem, to musisz najpierw przekonwertować liczbę na ciąg znaków ASCII i zapisać w buforze (tablicy) i dopiero funkcji LCD_WriteText() wskazać jej początek. Przykłady: znajdziesz tam użycie itoa()...
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...
prosty przykład: #include <reg51.h> // wczesniej reg517.h xdata unsigned char bufor_odb[512]; data unsigned int licznik = 0; data unsigned char nadaje = 0,znak = 0,koniec = 0; void UART_irq(void) interrupt 4 { if(TI) { TI = 0; if(nadaje){SBUF = znak;nadaje = 0;}else koniec = 0; } if(RI)...
Wiem że na forum jest pełno zagadnień dotyczących rs232 i AVR ale wszystko jest w bascom-ie którego nie umiem, pozatym dlamnie lepszy jest zwykły assembler. Poniżej program który wgrałem do ATmega8515 #include <m8515def.inc> Rjmp Start USART_Init: ;Ustawia Baud Rate Out UBRRH,r17 Out UBRRL,r16 ;Otwórz port i włącz transmisje Ldi r16,(1<<RXEN)|(1<<TXEN)...
Witam. Od jakiegoś czasu zastanawiam się jak przeprowadzić odczyt danych z Multimetrów tutaj omawianych [V-540, V-543, 553 itp.]. Myślałem o Bramie 8255 i Max 232. Nie wiem jak to zrealizować, a tym bardziej jak napisać program realizujący odczyt z 2 (3) takich mierników. W założeniach jest odczyt np. prądu i napięcia w odstępach czasowych programowanych...
Witam. Jak zaczynalem pracowac nad hexapodem ciezko bylo mi znalezc jakis krotki i w miare przejrzysty kontroler serwomechanizmow. Napisalem taki, plus mozliwosc sterwania serwami przez RS232. Wklejam je tutaj i mam nadzieje ze sie komus keidys przyda:) Algorytmy sa dosyc proste, jak by ktos chcial to moge wytlumaczyc jak co dziala zeby mozna bylo przystosowac...
Coś nie rozumiem. RS232 to nie LPT gdzie można wysyłać dane na poszczególny pin. W pewnym artykule napisałem: Krotkia teoria: UART to uklad scalony zarzadzajacy transmisja szeregowa. To wlasnie on komunikuje sie z urzadzeniami podlaczanymi do naszego portu rs232. Do niego wysylamy informacje z programow napelniajac jego bufor i to wlasnie on przechowuje...
Witam. Z programowania nie jestem zbyt dobry dlatego prosze o rady. Podlaczylem do portu COM2 czujnik ruchu (podpiete pod piny 2 i 3). Chcialby napisac podejrzewam bardzo prosty program na poczatek taki: jesli czujnik wykryje ruch tzn jakikolwiek sygnal pojdzie po kablu RS232 do portu COM2 program mialby dawac komunikat np. "Wykryto ruch". Czy ktos...
Posiadam układ zl9pld wraz z zl10pld. Próbowałem go wykorzystać jako odbiornik rs 232. Napisałem własny moduł i działa, ale źle ;D - tzn. odbiera inne dane niż bym oczekiwał. Ściągnąłem gotowy moduł (gdzieś tutaj na forum ktoś wrzucił) i problem jest identyczny. Nawet identyczne błędy są. Na pierwszy rzut oka może się wydawać, że to wina ucf'a lub ustawień...
Witam, próbuję zaprogramować mikrokontroler,aby obsługiwał USART do komunikacji przez RS232. Chcę wykorzystać do tego bufor cykliczny, który zaimplementowałem w następujący sposób: [syntax=c] #include <inttypes.h> #define BUFFER_SIZE 32 #define BUFFER_MASK ( BUFFER_SIZE - 1) typedef struct { uint8_t buffer[BUFFER_SIZE]; uint8_t head; uint8_t tail;...
Witam, Posiadam następującą komunikacje obustronną PC(delphi)<-->RS232<-->stero... PLC FATEK. W programie mam timer, ktory co 500ms odpytuje sterownik. Porblem polega na tym ze 2x na sekunde okno mi zamarza gdy chce np je przesunac. Ponoc jest jakas fukcja, ktora odciaza bufor...ktos mial podobny problem??
Sam ostatnio z tym się bujałem z tym, że używam FLTK... Generalnie tryb OVERLAPPED jest upierdliwy i mi to do d... to działało... Trzeba pamiętać o tym, że funkcje odczytu/zapisu wracają natychmiast niezależnie czy odczytały cokolwiek czy nie potem to już zabawa z flagami, events itp, itd... Do odczytu, jeżeli już faktycznie coś zostało odebrane, używasz...
Sprzętowy RS, to taki który będzie pod PCMCIA, a nie na zasadzie, karta PCMCIA a w niej rs podłączony do koncentratora USB, bo tak taniej. Wcale nie musisz wydawać tyle kasy, wystarcz znaleźć odpowiednią kartę. No właśnie, szukam odpowiedniej karty i nic, dlatego też piszę :) Jedna karta to PCMCIA, a druga Express Card. Posiadam oba gniazda w laptopie,...
Witam Próbuję zrealizować obsługę rs232 za pomocą przerwań. Najprostsze fragmenty kodu z noty katalogowej służące do sprawdzenia poprawności transmisji działają, zatem wykluczam tutaj jakiekolwiek przyczyny ze sprzętem i przedstawię tylko kod. plik main.c: • Bit 5 – UDRIE: USART Data Register Empty Interrupt Enable Writing this bit to one...
Witam Zestawiłem następujący układ: Dwie Atmegi32, wyjścia portów A,B,C podpięte do diodek. Atmega jest połączona poprzez MAX232 z porem COM komputera. Kwarc 16MHz, zmierzone napięcia są idealne (5V), całość na płytce stykowej. Problem jest następujący: Podczas wysyłania kolejnych 16-bajtowych ramek danych przez komputer, po jakimś czasie (czasem po...
więc jednym słowem nie mogę napisać programu komunikującego się dajmy na to z jakimś urządzeniem po rs232 na win2k? cos nie chce mi sie w to wierzyc przeciez sa takowe urzadzenia - chociazby centralki alarmowe gdzie programuje sie je poprzez rs'a i wszystko śmiga. Może chodzi o jakieś wyłączenie np buforow w win2k? kłopot się powiększa ...:cry:
Też tak miałem :( Otwórz obudowe i sprawdź czy nie masz tam buforka trójstanowego 74HC24x albo 74LS24x. U mnie tez tak było tylko ja mam fergusona 3018 i tez wymieniałem maxa a tylko wystarczyło bufor zmienić na nowy i rs śmiga
Napisałbym to pewnie inaczej, ale tutaj masz "tłumaczenie na Bascom" tego co zapisane było w C. W Bascom każda zmienna jest inicjowana na początku wartością 0 W C inicjujesz zmienną i nadajesz, albo nie, jej wartość i to jest to : static uint8_t i=0; Po prostu I As Byte i I = 0 I jest indeksem dla numeru bajtu w buforze. Wykrzyknik w C to zaprzeczenie....
Kiedy zgrywam mój program dzieją się dziwne rzeczy, kiedy programator jest podłączony do SPI i LPT po włączeniu robota LCD wyświetla napis, który jest ustawiony w nieskończonej pętli programu (1.jpg w załączniku) Kiedy programator nie jest podpięty robot po włączeniu włacza LCD, ale nic nie wyświetla. Kiedy bez podłączonego programatora podłącze kabel...