Zauważyłeś, że masz odzielne zmienne 'i' i 'bit_rx' w funkcji obsługi przerwania, niezależne od globalnych, na których działa main()?
Przestaw terminal na odbiór znaków ASCII. Program jest OK.Dane też.
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...
Tak wiem ale to jest moje zadanie do szkoły... i musze to oddać po nowym roku :/
Ok, spróbuję, tylko skoro teraz przerwanie będzie wykonywać się po odebraniu 10 znaków to co gdy na końcu przyjdzie np 6 znaków? Wtedy przerwanie się nie wykona, co nie i nie odbiorę ostatnich znaków?
Tak w Bascomie istnieje idealny sposób aby rozwiązać odbiór znaków przez RS232 (także nadawanie) - za pomocą przerwań. A kod zajmie kilka linijek. Wystrczy zapoznać się dogłębnie z takim poleceniem jak Config Serialin oraz wykorzystaniem np jednego z parametrów do tego polecenia - Bytematch (ale także innych) wtedy przy minimum wysiłku i kodowania będziesz...
Po co ci takie wielkie bufory ilku bajtów. Bufor wyjściowy Serialout jest nie potrzebny. Zakomentuj go (i to już może Ci od razu pomóc). Zamiast flushbuff możesz spokojnie napisać Clear serialin Proponuję też przejść na odbiór tego znaku w przerwaniu za pomocą Config serialin z opcją BYTEMATCH=ALL Poczytaj na temat tej opcji w helpie (angielskim)
Przecież w paczce z ComPortem jest instrukcja!!!
204
Jak działa to git ;) choć niepotrzebnie siedzi w pętli "for" już po przepisaniu znaków do drugiego bufora. Podejrzewam że można zrobić to też inaczej na funkcjach do stringów. PS. poczytaj o stringach http://en.wikipedia.org/wiki/C_string zrozumiesz o co mi chodzi z zamykaniem znakiem zerowym.
Liczba=StrToInt(CiagZnakow); ale tylko jeśli CiagZnakow nie zawiera innych znaków niż cyfry
To nie są problemy Bascoma, w bascomie można wiele rzeczy szybko zrobić, tylko jak ktoś go nie zna to najłatwiej i naszybciej jest na niego psioczyć i wylewać swe żale. ale ok, skoro ty (o ile dobrze zrozumiałem) w jakimś tam przerwaniu wysyłasz coś poleceniem PRINT przez łącze RS232 a następnie w tym samym przerwaniu czekasz na odbiór przez RS232 (waitkey)...
Mógłby ktoś zamieścić programik w C (!!!) który wskutek odebrania znaku przez port szeregowy spowoduje wywołanie przerwania dla AT Mega8 związanego z odebraniem znaku Rezonator zewnętrzny 4.9152MHz, 4800Bd 8bitów danych, 1 bit stopu Przerwanie nie musi nic robić - nawet odczytywać rejestru odbiornika - żeby się tylko wywołało. Próbuje od dłuższego czasu...
Kolejne pytanie: Jeśli chcę odebrać kilka znaków z klawiatury to powinienem wpisać to w jakąś tablicę? Jeśli chcę wysłać do PC cały wyraz to jak to robić? Możesz to zrobić różnie. Zależy czego potrzebujesz i na ile jesteś wprawny w programowaniu w C. W każdym z przypadków trudno jednak będzie się obyć bez tablic dla ciągów znaków odbieranych i wysyłanych....
Do jego stworzenia najlepiej nadaje się moim skromnym zdaniem UNIX. Polecam na początek wziąć się za rozgryzanie kodu dowolnej dyskietkowej distro Linux'a. Na tej zasadzie stworzyłem kiedyś distro oparte o zestaw Minimalist na platformie hal91 przyznam że działało to różnie, a system został zakończony przez mojego znajomego nie przezemnie, literówek...
Zrób sobie zmienną globalną, która będzie indeksować łąńcuch bufora. W przerwaniu odczytujesz znak, wrzucasz do bufora pod baj o danym indeksie, zwiększasz indeks. Kiedy już przyjdzie znak końca łańcucha zerujesz indeks, a daną masz w buforze. Możesz ją jeszcze przepisać do innej zmiennej, by jej nie stracić, gdy zacznie się odbiór następnego łańcucha...
Możesz odbierać po bajcie, albo po zapełnieniu bufora. Najprościej jest po bajcie i generować zdarzenie po rozpoznaniu znaku terminującego. Nowa linia "po Microsoftowemu" to CR+LF (czyli 10+13). Dlaczego RS485, a nie RS232?
Najlepiej zacznij przesyłać takie dane w postaci znaków ASCII i to najlepiej w postaci HEX, dzięki czemu będziesz mógł stosować normalny koniec linii w postaci znaku ENTER a dzięki temu z kolei o wiele łatwiej będzie ci zaimplementować odbiór danych przez RS232 (podobnie wysyłanie) A jeśli się uprzesz przy wysyłaniu takich danych binarnie to zaintersuj...
Dobrze, że chcesz to przesyłać w trybie tekstowym. Zatem od strony mikrokontrolera poczytaj sobie w Bascomie o poleceniach: Config Seriallin INPUT Config INPUT Ischarwaiting a także do operacji na łańcuchach znaków: MID LEFT RIGHT itp to powinno cię naprowadzić.
Witam, Udało mi się obsłużyć port COM za pomocą Buildera. "Rozmawiam" sobie z urządzeniem i wszystko pięknie chodzi. Odbieram dane w komponencie MEMO pracującym w timerze (100ms). Efekt takiego odbierania jest taki że to co przyjdzie z zewnątrz jest cięte na fragmenty. Jak zrobić żeby linijki w memo dodawały się kiedy z zewnątrz przyjdzie np znak nowej...
chcę zrobić coś takiego że: pętla główna do 'jakieś działania zajmują czas różnie od 5min do 1 godz. ' i tu dopiero by było odbiór rs232 - to ZŁE bo aplikacja będzie oczekiwała 1godzine aż ' uC się zgłosi!!! loop jest stała i ciągle oblicza jakieś wartości i nie mogę jej zatrzymać. Jak zrobić przerwanie od odebranego znaku z uart'u
Jeśli pytasz o sens stosowania przerwania informującego o nadaniu znaku to zależy on od ciebie. W szczególności nikt nie każe ci go wykorzystywać, a z tego co piszesz wynika, że można się bez niego obejść skoro odbiór masz nieblokujący zrobiony na przerwaniach odbiornika. Oczywiście w ATMega można jednocześnie nadawać i odbierać - te dwa podsystemy...
Witam. Jeśli chodzi o DOS to ściągnij sobie RBIL ("Ralf Brown's Interrupt List"): http://www.cs.cmu.edu/afs/cs/user/ralf/p... Poszukaj przerwania 14h, i przyjrzyj się funkcjom: 00h - inicjalizacja portu, 01h - wysłanie znaku, 02h - odbiór znaku, 03h - odczyt statusu portu. Dokładny opis w RBIL'u - niestety po angielsku, Opis powyższych...
Dzieki za odpowiedź - czyli procesor jest "nieczynny" przez czas odbioru 1 znaku , czyli (1/115200) *10 ? Dane z encodera też odbieram w przerwaniu. A mam pytanie, czy jeżeli wysyłam dane np tak: printf"ala ma kota"); to czy przez ten czas wysyłki procesor jest zablokowany?
Deklaruję zmienną jako bajt i jej wartość ustawiam na 0. Następnie wysyłam ją po rs232. Na terminalu ustawionym na odbiór stringów mam prawidłowo odebraną daną - czyli 0. Jak ustawię odbiór hex'ów to wyświetla mi 30 30 0D 0A. Jak jest ta dana konwertowana na hexa? Ona nie jest konvertowana na hex. Print służy do wyświetlania na terminalu więc wartość...
Troche czasu minęło odkąd robiłem coś na GPSach, ale czy $GPRMC nie jest czasem wysyłane jeżeli jakieś minimum jest osiągnięte (x satelitów widoczne itd.), lub GPS odpowiednio skonfigurowany? Spróbuj też podłączyć ten odbiornik bezpośrednio pod kompa (może być wymagany konwerter RS232) i zobacz czy odbierany strumień jest taki sam jak ten na uC.
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...
Oczywiście miało być 100,10,1. Dzięki za poprawkę, ale to i tak nie ma żadnego wpływu na moje echo, które nie zachacza o transmisję. Generalnie jedna ramka ma: 1) pierwszy znak rozpoczynający odbiór '?' 2) znak 1 i 5 są znakami + lub - w zależności, czy liczba jest ujemna, czy dodatnia. 3) znaki 2,3,4 to liczba 3-cyfrowa, znaki 6,7 to liczba 2-cyfrowa...
W jaki sposob wysyłasz ten znak (WinAPI/Custom DLL/io)? Pokaz fragment kodu. Po wiedz mi w jaki sposob ustawiles predkosc 5 na porcie? Kolejne pytanie ktore sie nasuwa brzmi: Dlaczego Ty wysyłasz bity, a nie bajty? Fizycznie i tak musisz wysyłać bajty, ale pakujesz pewnie w nie pojedyńcze bity z wartościami. Jeśli chodzi zaś o opózniony odbiór. Jesli...
Na procesorach bez wsparcia sprzętowego dla USB jego uruchomienie jest bardzo trudne i nieefektywne, a osiągane transfery są żałosne. USB jak każdy złożony protokół składa się z kilku warstw - interfejs sprzętowy zapewnia realizację warstwy elektrycznej i łącza, wraz z podstawowymi elementami wymiany danych - odbiór i nadawanie pakietów, enumeracja...
Chodzi mi tylko o odbiór. Więc, jeśli jest nadawanie z prędkością np 115200 i trafi sie w czasie nadawania przerwanie np zaraz po bicie startu to zrobi sie czasowe przesunięcie które może zniekształcić całość. Skoro jeden bit przy takiej predkosci to tylko kilka mikrosekund to problem jest. Czy więc ma sens otaczać printf funkcjami "cli" i "sei" ?...
Rozumiem że zakomentowałeś, zamykanie i otwieranie portu podczas wysyłania oraz linie InputData = serialPort1.ReadExisting(); "Odepnij" to zdarzenie DataReceived i dodaj dla testów jeszcze jeden Button i daj tam: string data = serialPort1.ReadExisting(); ReadLine() czeka na znak nowej linii, może przesyłasz "cos", a nie "cos\n"?
Mam do zroibienia projekt o tematyce: Napisać program umożliwiający odbiór oraz nadanie danych przez RS232 podłaczonego do komputera PC. Program nadajacy powinien odbierać cyfry wpisane na klawiaturze PC i wyswietlać je po koleji na 8 wyswietlaczach siedmiosegmentowych. Po zapełnieniu 8 wyswietlaczy dane znikają i kolejne cyfry zapisywane sa od poczatku...
Witam. Robię układ elektroniczny (z atmegą32), który będzie komunikował się z komputerem za pośrednictwem RS232. Na komputer zamierzam stworzyć prostą aplikację, którą napiszę w Visual Basic 4. Czytałem, że do komunikacji programu napisanego w VB za pośrednictwem RS232 istnieje jakaś biblioteka. Jaka to jest biblioteka? Czy będzie współpracowała ze...
Witam ostatnimi czasy mając do dyspozycji mikrokontroler attiny26. Postanowiłem napisać prosty program umożliwiający przesyłanie znaków z komputera do uC i prezentacje na wyświetlaczu alfanumerycznym LED. Attiny26 nie posiada jednak portu szeregowego RS232 więc chciałem spróbować swoich sił i napisać obsługę programową. Generalnie odbiór danych realizuje...
Przykłady parsowania danych tekstowych masz w helpie - keyword reference - string. Np polecenia typu LEFT, MID, RIGHT itd. wraz z opisem działania masz przykłady. Do Bufor = Ischarwaiting() 'Sprawdz czy cos jest w buforze If Bufor = 1 Then Waitms 250 Gosub Odczytaj_sprzetowy_uart 'Jesli jest to odzcytaj Oblicz Cls Locate 1 , 1 Lcd Dane; Locate...
Wykonuje się 16384 razy... I prawidłowo, ponieważ 32768/Preskaler/(OCR+1)=16384. Zastanawiam się, po co Ci przerwanie co 1 takt Timera2 napędzanego kwarcem zegarkowym :?: Racja. Gdyby się to jeszcze nie zacinało, było by fajnie. Timerem2 mierzę długość trwania impulsów. Ogólnie to problem pojawił się jak wysyłałem inf. przez rs232 do atmegi. Kod mam...
Google są wielkie znalazłem i dziękuję wszystkim cierpliwym za pomoc A w załączniku opis dla tych co będą szukać po mnie Jednak polecenie InStr nie znajduje w odebranym ciągu znaku którym oddzielam poszczególne dane tak jakby się się opróżniał i zachowuje się z niego tylko ostatni kawałek. Proszę pomóżcie mi to zrozumieć Polecenie dana= MSComm1.input...
Buffer_I="" - czy to przypadkiem nie przeinicjuje wskaźnika zmiennej?
Witam, mam taką funkcję (z książki Bryndzy): static void Uart0Gets(char *str) //Odbior znaku przez rs232 z terminalu { char c; do { while(!(U0LSR & U0LSR_RDR)); //Czekaj na znak c = U0RBR; //Odbierz znak *str++ = c; //Zapisz znak do bufora while(!(U0LSR & U0LSR_THRE)); //Czekaj na nadajnik //U0THR =...
cichy999 --> jak jeszcze pisałem programy w Bascomie to spokojnie takie rzeczy robiłem. Bierzesz sobie np najnormalniejszego małego procka np ATtiny2313 (ma przecież nawet piękną sprzętową obsługę RS232), i przede wszystkim robisz w nim normalną obsługę LCD. Potem dopisujesz procedury do odbioru danych przez RS232 (może być tylko odbiór) Następnie wymyślasz...
czy aplikacja w Javie powinna być pisana z uwzględnieniem faktu że będzie zastosowany konwerter RS232 na USB czy nie ma to znaczenia? Bez znaczenia. Już piszę o co chodzi np: ciąg L375L odbiera jako 2 ciągi znaków np:L37 i 5L.Powtarzalne jest to że w przypadku złego odczytu przez aplikację ciąg znaków zawsze podzielony jest na dwie części natomiast...
Wszystkie rejestry mam poustawiane tak, jak powinny być, luty i schemat sprawdzane 100 razy... Po odpaleniu aplikacji, która ma się komunikować z prockiem (cyklicznie wysyła znak i czeka na odpowiedź) nic się nie dzieje: na liniach Txd i Rxd procka jest stan wysoki, na linii Txd portu jest -10V, na Rxd portu jest 0V. Jeśli jednak zewrze się nóżki 12...
Nie łapiesz:) Napisałem w jednej linijce żeby było wszystko;) Od początku w takim razie Czekanie na znak ,odbiór i odesłanie void main (void) { while(1) { while(!rx_counter); a=uart_getchar(); uart_putchar(a); } } Jeśli jest znak to odbiór i odesłanie if(rx_counter) { a=uart_getchar();...
Przepraszam - jakoś "krzywo" spojrzałem i byłem przekonany, że chodzi o D1 :) Dioda D2 powinna sygnalizować odbiór danych na linii RS485. Jeśli po stronie RS485 (czy tutaj raczej RS422, bo układ może pracować w pełnym duplexie) nie masz nic podłączone, to na pinie 2 MAX490 masz stan spoczynkowy TTL, czyli wysoki. Powoduje to wysterowanie transoptora...
Męczy mnie ten fakt, że jak go uruchamiam i jest zasilony to początkowo dane idą elegancko, wysle i odesle tez dobrze, dopiero drugie wysłanie paczki danych i odbiór się sypią. Tak naprawdę to nie wiesz, czy problem leży po stronie odbiorczej, czy nadawczej. Być może odczyt flag FE0 (w szczególności) oraz DOR0 z rejestru UCSR0A pomoże zlokalizować...
Witam, Mam problem, mianowicie gdy nadaję z PC do procka np. znak "1" to otrzymuję "11" dodam, że odbieram w przerwaniu. Konfiguruję USART w stm w następujący sposób: [syntax=c]void USART_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; USART_ClockInitTypeDef USART_ClockInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP...
Jeśli nie chcesz zawieszać procesora to rób odbiór w przerwaniu i w formie bufora kołowego. Dodano po 47 Kolego na szybko napisałem Ci taki przykład obsługi takiego przerwania. Zakładam że znasz zasadę działania bufora kołowego bądź jesteś w stanie sobie doczytać w necie jego działanie. [syntax=asm] .dseg rxbuff: .BYTE 16 //bufor kołowy na odebrane...
Przy instrukcji Input "odebranie znaku <CR> (kod 13) kończy wprowadzanie danych dla bieżącej zmiennej." A co jeśli znak <CR> nie zostanie nadany? Wtedy program stoi i czeka!
Odbiór znaków z UART [syntax=c]char uart_getc(void){ if(UART_RxHead == UART_RxTail) return 0; UART_RxTail = (UART_RxTail+1)&UART_RX_BUF_MASK; return UART_Rx_Buf[UART_RxTail]; }[/syntax] deklaracje zmiennych [syntax=c]volatile char UART_Rx_Buf[UART_RX_BUF_SIZE]; volatile uint8_t UART_RxHead; volatile uint8_t UART_RxTail; volatile unsigned char odb_x;...
Czy wysłaniu komendy "V\r\n" przyrząd zwraca wynik ostatniego pomiaru raz, czy zaczyna go przysyłać co jakiś czas? Bo jeśli raz, i zwróci identyczne z poprzednimi, to w programie w #1 wychodzi nieskończona pętla. A program w #2 czyta raz i się kończy - żaden z nich nie działa tak, by powtarzać komendę i czytać odpowiedź, aż zostanie przysłana inna....
Generalnie gratuluje ambitnego wyzwania !! dzięki, po prostu jak już wspomniałem gdzieś tam na samym początku projektuję sobie dużą płytkę do rozpracowania przeróżnych interfejsów w AVR, dlatego płytka będzie właśnie miała ATmega128 (żeby starczyło na wszystko co sobie wymyślę), zewnętrzną SRAM i EEPROM (chociażby do TCP/IP), moduł Ethernet, Bluetooth...
Przerwanie zostanie wykonane tylko wtedy gdy nadejdzie nowy znak. W innym przypadku będzie się wykonywał program główny. Jeżeli został odebrany znak to procesor wchodzi w przerwanie, gdzie następuje odczyt UDR i wpisanie go do twojego bufora. [kod] SIGNAL(SIG_UART_RECV) { bufor = UDR; // odczyt znaku } [/kod] Następnie procesor wychodzi z obsługi przerwania...
Witam, od kilku dni walczę z tą nieszczęsną transmisją szeregową. Uprościłem kod niemalże maksymalnie. Jedynie odbiór znaku z terminala i odesłanie go. Aczkolwiek wciąż coś jest nie tak. Mianowicie powracający znak do terminala nie pokrywa się z wysłanym. Z analizy binarnej wygląda mniej więcej na coś takiego, że podczas odbioru znaku przez mikrokontroler...
Skoro chesz przesyłać dane czyste dane binarne to chyba zrozumiałe, że odpada ci konstrikcja Bytematch z zastosowaniem dowolnego bajtu, który byłby końcem jakiejś tam ramki w związku z tym musisz je albo: 1. wysyłać czysto binarnie z kompa a w procku po prostu czekać na zakończenie transmisji - wprowadzając jakiś TimeOUT (ale to czasami mało eleganckie...
Witam. Zabrałem się za pisanie biblioteki do obsługi interfejsu SCI w ww. kontrolerze w języku C. Transmisja i odbiór są realizowane w przerwaniach. Tu mam problem. W procedurze obsługi przerwania wywołanego pojawieniem się odebranego znaku w buforze muszę skasować flagę przerwania (RDRF). Skasować ją można sekwencją: - odczyt SCISR - odczyt SCIDR Robię...
Witam Pisze program do komunikacji urządzenia z komputerem po RS-ie w Borlandzie C++ Buliderze 6. Nadawanie i odbiór mam już zrobione, lecz mam problem z uporządkowaniem odebranych danych. Odebrany String o długości 6-12 znaków mam w tablicy 12-sto elementowej. I teraz mam 2 problemy: 1. Ponieważ mam zmienną długość słowa (6-12 znaków) w jaki sposób...
Program ma wykorzystywać przerwania, czy poniższy fragment kodu jest dobry? Dobrze rozumiem, że on jest zarówno dla slave i dla master? org 0 sjmp st org 23h ; adres obsługi przerwan w pamieci programu dla portu szeregowego: 0023h ajmp seriali st: mov tmod, #20h ; tutaj mam wątpliwości dlaczego 20h? mov th1, #0fah ; 9600bound setb sm1 ; tryb...
Witam robie komunikacje AVRa z PCtem. chcę zacząć od napisania programu w builderze do odbioru paru znaków. Ze strony AVRa wszystko gra wysyłam napis, sprawdzane w hyperterminalu wszystko OK. Ale teraz za bardzo nie wiem jak to zrobic w builderze. Korzystam z książki "RS232C - prog. praktycze". Chciałbym aby mi ktoś wytłumaczył na chłopski rozum jak...
Witam serdecznie, Czy już coś wiadomo na temat wysyłania i odbioru danych. Pozdrawiam
Witam kolegów Mam taki problem. Podłączyłem trx FT857D pod laptopa z zainstalowanym systemem Windows Vista . Podłączyłem poprzez przejściówke: wtyk com RS 232 do USB. Po uruchomieniu programu MixW w którym pracuje na PSK31, przy próbie nadawania - tx w radio załącza sie po zakończeniu generowania znaków ( np formuła wywołania ogólnego ) i pozostaje...
Być może wykonałem zbyt duży skrót myślowy w tym temacie za co przepraszam. Oczywiście bazowanie na timeout-ach oznacza że timeout-y mają wyższy priorytet w ustalaniu poprawnej transmisji. Co to oznacza: - nadajnik wysyła daną i włącza timer ustawiony np. na 10ms. oczekuje na potwierdzenie wysłania, jeśli otrzyma to ok. (potwierdzenie może zawierać...
Witam wszystkich. Mam urządzenie (AVR+bascom) które wysyła po rs'ie dane o ogólnie rzecz mówiąc stanie czujników, podzespołów. Dane odbierane w terminalu wyglądają jak poniżej: W:sterownik v5.14 - 05.12.11 U:6.12V I:42.0 H:poziomo - poza zakresem h:0 V:pionowo - poza zakresem v:0 V:pionowo - w górę v:9 U:6.15V...
Oto Twój program po zoptymalizowaniu i usunięciu zbędnych (dla tego przypadku) linii , powinien działać, a więc po odebraniu znaku zapalić diodę. bsf STATUS,RP0 clrf TRISB ;PORTB - wyjscia movlw .51 ;baud rate 1200 / 4MHz movwf SPBRG bcf STATUS,RP0 bsf RCSTA,CREN bsf RCSTA,SPEN clrfPORTB ; wyzerowanie portu btfss PIR1, RCIF ;bit 2 nie 5 goto $-1 ;czeka...
Jeżeli chcesz tylko wysyłać dane do PC to najprostszym sposobem podłączenia z jednoczesną separacją galwaniczną jest zastosowanie transoptora CNY17. Od strony ATmegi, CNY-2 do Tx , CNY - 1 do Vcc W PC CNY - 5 do pinu 2 w gn DB9 , CNY - 4 do pinu 6 w gn DB9 Odbiór znaków w PC dowolnym terminalem. UWAGA: nie mam przy sobie tego kabelka ani PC z RS'em...
oto moja obecna aplikacja "napisana" na podstawie innych programów przykładowych. Po kliknięciu w button pojawia mi się wartość w wybranym okienku i jest OK. Jednak gdy klikne kolejny button (w celu odczytania drugiego pomiaru) zaczynają się schody. Pojawia się najpierw wartość pomiaru 1 a dopiero po 5 kliknięciu wartośc z pomiaru nr2. czy to wina buforów...
Tu masz odpowiedź: http://pl.wikipedia.org/wiki/Tablica_asc... Znaki tekstowe zaczynają się od 0x20h a te wcześniejsze są po prostu zastępowane kwadratami
Czesc, przedstawiam schemat sposobu podlaczenia, max232 (procesor AT90s2313). Kabel skrosowany, znaki wysylam HYPER TERMINALEM, jednak procesor nie reaguje jakby nic nie dostawal. Czy gdzies jest blad w programie czy w elektronice? (Kontroluje "port monitorem" co wychodzi na RS i wszystko sie zgadza). #include <avr\io.h> #include <stdlib.h>...
Potrzebuje pomocy w napisaniu wsadu do mikrokontrolera w c++. AtTiny2313 po odebraniu 2 znaków typu char z portu RS232 (16 bitów) ma wysłać je do podłączonego generatora AD9833. Schemat jest w dołączonym pliku. Głównie chodzi mi o to, żeby na wyjściu PB1 mikrokontrolera był stan wysoki lub niski, kolejnych 16 przysłanych bitów. Kolejność odczytów bitów:...
Kolego prosta sprawa, do odbioru danych po rs232 używaj przerwań i gromadź dane w buforze. Obsluga przerwania odbioru znaku powinna sprawdzać kod znaku nadchodzącego z zewnątrz. Jeśli przyjdzie znak Enter przerwanie ustawia flagę. Flagę sprawdza z kolei głowny program, jeśli jest ustawiona wykonuje obsługę związaną z nadchodzącymi informacjami po rs232....
Mam problem z wysyłaniem sms, wykorzystuję atmege128 i moduł sim900 na płytce Evb v1.01_pcb , proszę o rzucenie okiem na kod gsm.c [syntax=c]// PLIK: gsm.c // Dołączone biblioteki #include <avr/io.h> // Biblioteka obsługująca peryferia mikrokontrolera #include <avr/interrupt.h>// Biblioteka obsługująca przerwania mikrokontrolera #include...
Witam wszystkich mam następujący problem, otóż chciał bym stworzyć funkcję która pobiera z portu rs232 cały napis, który następnie mógł bym przekonwertować do postaci integer, czy double lub inne zmiennej liczbowej. Próbowałem to zrobić w oparciu o własną funkcje uart_get_string ale funkcja pobiera tylko jeden znak. Powyższe potrzebne mi jest do np....
Też tak myślę :) Jednak jeżeli w bascomie otwieram emulator terminala wyskakuje błąd: Could not open COM1 ... poprawka działa lecz też nie dostaję żadnego znaku
Witajcie ! Szlag mnie trafia już dlatego proszę Was o pomoc .. Jak w temacie .. wysyłam hex poprzez port rs232 na uart megi tam w postaci char jest przechowywany w tablicy a następnie liczony do int-a i wyświetlane jest to na lcd poprzez itoa. Niestety nie działa jak należy ... oto kod : plik main int hex2int(int byte) { test = 0; test...
Na razie to mi działa tak, że muszę celować z prawidłowym rozpoczęciem nadawania i odbioru. Jedynie odpowiedni protokół transmisji rozwiąze ten problem, trzeba zrobić jakieś sygnatury startu danych.
No ale VMIN mam ustawione na 1 co wg dokumentacji zmieni, że funkcja read czeka aż do momentu odbioru znaku.
Raport z postępów: brak ;P (chociaż rozgryzłem to haszowanie częściowo - w programie easyhash pod nazwą crc-16(x25) - nie moge tylko zmusić swojej funkcji żeby poprawnie hashowała - nie jest podany wielomian haszujący...) o adapterze: Adapter który posiadam kupiłem gotowy na allegro, schemat: jak z tego wybrnąłem? układ FTDI232R może pracować w trybie...
chciałbym wykorzystać Dim Bufforek As Char = SerialPort1.ReadLine() i teraz coś takiego że od pierwszego znaku uzależnia wyświetlanie w textboxie if Bufforek Dodano po 1 Doszedłem do tego że problem tkwi w tym,że układ zapamiętuje poprzednie próbki z RS232 tak jakby zapisywał je gdzieś do pamięci - nie są to próbki czasu rzeczywistego..
Zgodnie z obietnicą zastanowiłem się jeszcze trochę nad tym problemem Elektrycznie można sygnał z RS-232 skomunikować przez kabel koncentryczny za pomocą układów transmisyjnych z rodziny TTL, np. 75107/75108 (odbiornik) i 75110 (nadajnik) W książce Włodzimierza Sasala "Układy scalone serii UCA64/UCY74" wydanej w 1990 r. przez WKiŁ, od strony 450 do...
Poprzedni kod wysyłał setki razy ten string a nie jeden raz - o jakiej ty pętli sprawdzającej mówisz? - gdy zworka była naciśnięta to w tej twojej pętli był on wysyłany wielokrotnie aż do jej skończenia. Albo z uwagi na bliżej nie określony czas trwania tych twoich pętli mógł być w ogóle nie wysłany. Nie znasz pan takich poleceń w AVR GCC jak: _delau_ms()...
Witam Problem następujący. Odbieram dane z rs232 poleceniem SerialPort.ReadExisting(). Przypisuje każdemu znakowi w ramce odpowiednią zmienną (wycinając poleceniem MID poszczególne znaki), a poleceniem ASC zamieniam znaki te na BAJTY. Niestety tablica ASCII jest do 127 i przy konwersji mam bajty tylko do 127 a chcę mieć do 255.. Wiem że zamiast do ASCII...
$crystal = 8000000 $baud = 9600 Config Lcd = 40 * 2 Config Serialin = Buffered , Size = 20 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Enable Interrupts Dim Command As String * 1 Dim Temp1 As Integer Dim Temp2 As Integer Dim Status As Byte Dim Numer As Byte Temp1 = 12.1 Temp1 = 30.1...
Jeżeli nie przeraża Cię asembler to coś w tym stylu powinno pomóc. Program do odczytu zewnętrznej pamięci danych AJMP START ORG 200H START: ;=======================================... ; Ustawienie timerow i przerwan dla liczników czasu i transmisji szeregowej ;=======================================...
Mam taki kłopot; korzystam w programie z transmisji z PC do mikrokontrolera vis RS232 (Atmega 2561, sprzętowy uart, 115200 b). W tym celu używam funkcji SERIALIN z opcją BYTEMATCH (znak CR). Bufor o długości 200 znaków. [syntax=vbnet]' port szeregowy do komunikacji z PC oraz modemem GSM Config Com2 = 115200 , Synchrone = 0 , Parity = None , Stopbits...
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...
Witam. Mam problem. Napisalem program do wysylania danych przez RS z plytki ZL10AVR z mikrokontrolerem ATmega32. Dodatkowo w programie LabView na PC zrobilem odczyt jak i wysyl danych. Na dzien dzisiejszy program dziala tak, ze po wcisnieciu odpowiedniego przycisku na klawiaturze 4x4 wysylana zostaje odpowiednia dana (np: "1"). Na PC LabView odbiera...
https://obrazki.elektroda.pl/9443989800_... Jednopłytkowy komputer oparty na mikroprocesorze 8085 Założeniem było zaprojektowanie i zbudowanie prostego komputera na jakimś prostym procesorze w celu nauki assemblera. Konstrukcja oparta jest na wcześniej wspomnianym mikroprocesorze Intel 8085. Dlaczego akurat taki? Taki akurat miałem...
Przepraszam że dawno nie odpisywałem, byłem trochę zajęty (i w pracy druga zmiana). Po stronie uC to narazie wygląda to tak: [syntax=basic4gl] 'Drugi program do testòw 04.12.2013 $crystal = 8000000 $baud = 19200 $regfile = "m32def.dat" $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 'default use 10 for the SW stack $framesize...
Problem stanowił ft232, po wymianie na inny wszystko zaczęło działać. Postanowiłem jednak odświeżyć temat ponieważ napotkałem się na jeszcze jeden problem. Przy wysyłaniu jakiegoś kilka razy jakiegoś ciągu znaków np: "dioda" Odbiór jest następujący (zarówno w VC# jak i w RealTerm). dioda dioda dddddddddioda dioda dioda dioda ddddddddddddiodadd tak wiec...
Witam Wszystkich. Mam problem z obsługą zewnętrznego przetwornika ADC. W swojej pracy chcę zastosować 12bit przetwornik MAX1270 (link do dokumentacji http://obrazki.elektroda.net/19_12175004... Udało mi się zrobić komunikację poprzez RS232 jak i transmisję przez SPI. Problem polega na tym, że wyskakują błędne wartości, np. jeśli ustawię przetwornik...
czytam czytam i nie moge nic znaleść o tych zapytaniach :cry: query : PChar = 'CDAT?'+#13+#10; // przykładowe zapytanie // zakończone parą znaków CR LF Czy ktoś pomógłby mi to zrozumieć (dodam że sam się tego ucze i nie mam z nikąd pomocy). Sama ksiązka sporo mi dała "Praktyczne programowanie rs232" sporo objaśnień odnośnie całej komunikacji ale...
pring temp1 print temp2 print a ' stan portu d5 jeśli jest sygnał wysyła wartość x na port com print 1' jeśli sygnał na porcie d5 zanikł wysyła 1 są to dwie temperatury wysyłane na port com. W hyperterminalu odbieram je bez problemu jednak jak to zrobić żeby można je było wyświetlić w delphi na 2 elementach typu RichEdit i jak odczytać wartość sygnału...
W ksiażce RS232 praktyczne programowanie jest następujący kod do naprzemiennego sterowania RS232 //-----------dos_rs_1.cpp---------------... #include <iostream.h> #include <conio.h> #include <stdio.h> #include <bios.h> #include <string.h> #define WINDOW_IN() window (1,3,80,12) // okno do...
Zmień char znak; na volatile char znak; Piotrek
String zakończony jest 0, a znak enter to 0x0D musiałbyś to rozwiązać
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); var znak:byte; begin comport1.Read(znak,1); if ord(znak)>127 then begin dana[1]:=znak; comport1.Read(znak,1); dana[2]:=znak; end; end;
Witam. Niedawno rozpocząłem swoją przygodę z Atmegą8. Chciałem sprawdzić jak działa interfejs TWI. Na podstawie książki pana Cezarego Klimasza zakupiłem układ 24c16wp i napisałem program. Niestety program zamiast wyświetlać mi w terminalu liczby od 255 do 0 wyświetla bliżej nieokreślone sekwencje znaków. Czy mógłby mi ktoś pomóc znaleźć błąd w moim...
ale jak tam dodam czyszczenie bufora to on sie wyczyści przed wyjściem z programu obsługi przerwania..i nic się nie wyświetli raczej.. zależy mi na tym by wielkość bufora była na jeden znak. Chyba tak jest najlepiej ?
http://obrazki.elektroda.pl/8220357800_1... Witajcie moi drodzy Dzisiaj pokażę wam moją kolejną płytkę rozwojową z mikrokontrolerem PIC, tym razem pozwalającą na generowanie sygnału PAL, czyli na wyświetlanie danych na telewizorze. Wstęp Są różne sposoby na wyświetlanie informacji z mikrokontrolera. Najczęściej korzysta się z wyświetlaczy...
Posiadam taki telefonik i moja ocena tego telefony jest +2.Osobiścię wolał bym T230 od 3510i. Tutaj są wszystkie dane techniczne tego telefonu: Informacje Ogólne producentSony Ericsson modelT230 System900/1800 UMTSnie Waga [g]79.2 Wymiary [mm]101 x 43,9 x 19 Maksymalny czas czuwania* [godz]150 Maksymalny czas rozmów* [min]400 Standardowy akumulator670...
bascom odbiór znaku odbiór rs232 rs232 odbiór danych
zaczep schowek transformator inwerter sprawdzić montaż front zmywarka
mikrofala usterki mikrofala usterki
Zamiennik cylinder tłok Husqvarna 40 – Meteor, Nevada, Proline, AIP – średnica 40 mm, opinie Arduino Uno – obsługa grafiki, OLED, TFT, biblioteki Adafruit GFX, U8g2, ograniczenia RAM