Witam, mam problem przeszukałem wiele forów i próbowałem kilku sposobów. Może ktoś mi doradzi, więc mam problem z zapisaniem ciągu znaków w Atmedze (tzn. odbieranie). Wiem że należy zastosować najlepiej tablice do tego celu. [syntax=c]char odebrana_tab[]; if(odebrana_dana ==! 0) // jezeli dana...
np tak: źródło jest wygenerowanie automatycznie przez Codevision ale jak się przyjżysz to załapiesz o co chodzi :) i będzie to dla ciebie jakaś pomoc dla własnych modyfikacji #include <mega32.h> #define RXB8 1 #define TXB8 0 #define UPE 2 #define OVR 3 #define FE 4 #define UDRE 5 #define...
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...
Witam Na wstępie powiem że nie jestem ekspertem w C. Pisze programik działający na Atmedze16. Mam dwa dwa układy Ram i RTC i muszę się z nimi dogadać przez SPI. I się nie dogaduje. Zeby zapisać cos i odczytać z Ramu muszę zapisać (dla zapisu) kod rozkazu - 8 bitów, adres komórki zapisywanej - 24 bity...
Dziękuję za odp. W takim razie mam pytanie dlaczego drugi USART (RXD1 oraz TXD1) mają stany wysokie gdy procesor nic nie robi (w tej chwili nie wysyła nic ani nie odbiera Pętla "Main: rjmp Main" - ten USART działa poprawnie odbiera i wysyła? RXD0 jest też w stanie wysokim i odbiera dane natomiast TXD0...
Czy kiedykolwiek zdarzyło Ci się użyć terminu UART tylko po to, by zostać poprawionym przez innego inżyniera, że nie jest to UART, ale USART? W pewnych przypadkach oba te terminy są zamienne, ale w wielu innych używanie ich wymiennie jest niepoprawne. Przyjrzyjmy się, czym dokładnie są USART i UART,...
Przede wszystkim porzuć tą buibliotekę, przynajmniej w wersji klasycznej. I teraz od końca - odbiornik USART nasłuchuje cały czas i to nie angażuje procesora. Ba, np. w takiej XMEGA E5 procesor można nawet uśpić, a USART pracuje i jak zajdzie potrzeba to go wybudzi. To na czym powinieneś skupić swją...
Na początek przypomnijmy, czym są UART i USART. UART to uniwersalny asynchroniczny odbiornik / nadajnik, a USART to uniwersalny synchroniczny / asynchroniczny odbiornik / nadajnik. Jak wskazują ich nazwy, te dwa elementy sprzętu są bardzo podobne. W rzeczywistości, USART są UARTami, które mogą komunikować...
Po pierwsze enkoder możesz obsługiwać sprzętowo na XMEGA - w tym celu konfigurujesz event system na QDEC, a dowolny timer będzie ci zliczał impulsy i pracował jako enkoder. Co do transmisji USART - można paczki odbierać przez DMA, co jest wygodne, można to zrobić w oparciu o przerwania. W tym celu odblokowujesz...
Witam. Posiadam mikrokontroler STM32F429 na płytce 32F429IDISCOVERY. Napisałem obsługę wysyłania i odbierania znaków przez USART, jednak program nie pracuje. Program przedstawia się następująco: -Załączam taktowanie do układu USART2: -Konfiguruję piny D5 (Rx) i D6 (Tx) jako alternatywne:...
Witam, Od kilku dniu próbuję uporać się z komunikacją po RS485, no i napotkałem problem z którym sobie nie radzę. Korzystam z płytki testowej ZL2AVR ( ) oraz układu MAX485 ( ) (pomiędzy zasilanie a masę kondensatory 47uF i 100nF, piny !RE i DE połączone razem i podłączone do PB0 uC, RO do RxD...
Witam, od tygodnia próbuje poprawnie skonfigurować mój mikrokontroler at91sam7s256 do współpracy z pc'tem za pośrednictwem usarta (narazie kabel podlaczony do COM'a, docelowo modul bluetooth BTM220A2). Znalazłem w sieci kilka przykładowych konfiguracji usarta, które przetestowałem i działają teoretycznie...
Witam Mam prosty układzik max232 + attiny2313 i działa ładnie ale jest takie dziwne zachowanie przy rozłączaniu połączenia ze strony PC, otóż uC odbiera wartość 0. Dlaczego ? Nawet wykorzystanie np. bray terminal, klikam Connect i Disconnect. Po kliknięciu Disconnect uC odbiera właśnie 0. Ustawienia...
Zakladam ze wlaczyles usart w odpowiednich rejestrach i skonfigurowales transmisje w tryb 8N1 czyli osmiobitowa bez parzystosci z jednym bitem stopu. Po obu stronach musi byc tak samo skonfigurowane i pewnie jest bo cos odbierasz jakies krzaki. Faktycznie warto stosowac konwerter poziomow ale tez sie...
Nie, nie mam. Dodano po 22 W kodzie na temat USART'a, trochę namieszałeś. ATmega128 ma 2 USART'y. W jednym miejscu konfigurujesz USART1 a w innym używasz USART0. Polecam datasheet'a do ATmegi128, są tam też przykładowe kody dot. USART'a.
Witajcie, moją przygodę z STM32 zacząłem stosunkowo niedawno, praktycznie od samego początku staram się stworzyć "protokół" do bezawaryjnej komunikacji po USARcie, który wykorzystany będzie do transmisji danych z małego robota typu LineFollower. Nie mam większej wiedzy, ani doświadczenia z tej dziedziny....
Strasznie dziwne rzeczy się dzisiaj dzieją z tym wszystkim, udało mi się uruchomić USART ale nie działał mój stary kod z którego korzystałem od dawna. W zasadzie to była biblioteka napisana w oparciu o datasheet. Nie działała poprawnie funkcja inicjalizacji i zadziałała dopiero funkcja z jakiejś strony...
Tekst z pamięci uC jest wyświetlany prawidłowo, umiem wyświetlić teksty i liczby, problem mam z komunikacją i odbieraniem danych. LCD jest użyty tylko aby zweryfikować odbierane informacje i zmusić jakoś to wszystko do działania. Podłączyłem go tylko dlatego aby wyświetlić przychodzące dane i doprowadzić...
Witam, mam problem z komunikacją między UI a portem komunikacyjnym. Zaimplementowałem bibliotekę RXTX do obsługi portu komunikacyjnego w Javie i wszystko ok, wysyła i odbiera dane, problem pojawił się wtedy gdy muszę przekazać dane które otrzymałem na porcie do GUI. Interfejs napisany jest w JavaFX...
Większość mierników panelowych ma małe wyświetlacze. Wskazania max 1999 (gdy oparte o ICL7106/7 lub podobne) lub mniej (np 199 gdy oparte o mikrokontrolery). Wersje na mikrokontrolerach przeważnie nie mierzą wartości ujemnych. Nie spotkałem takich z opcją pomiaru relatywnego. Czasem można spotkać...
Hej, napisalem cos takiego na ATm8515, fuse_high=0xd9, uP pracuje na 1MHz, transmisja ustawiania na 8N1, bez parzystosći, 19200, 9600 i za każdym razem komputer odbiera od uP przekłamaną w całości transmisję. Coś zmaściłem, ale co?? Skończyły mi się pomysły.. Z góry dzięki, migod usart.c -------------...
Jeszcze jedna sprawa... Zmienna zliczanie jest typu unsigned char więc ok... Ale jak ją odbierasz...? Jeżeli terminal odbiera wszystko jako ascii to wyskakują krzaki bo traktuje to co wysyłasz jako kody znaków ascii... Np. kropka to 46... Więc albo odbieraj jako liczbę albo przed wysłaniem zamieniaj...
Wiem że temat ten byl wałkowany wielokrotnie ale nie znalazłem rozwiązania. Chodzi mi o to czy ktoś może przetestować kod na jakimś sprawdzonym układzie pod kątem odbierania bajtu. Atmegę łączę bezpośrednio z ukłądem FPGA ale przeważnie odbieram liczbę 130. Jedyne na czym mogę podejrzeć odebrany bajt...
Witam, od kilku dni próbuję wygrać nierówną walkę z programowym pwm i usartem na atmedze8. Wysyłam z nadajnika dane za pomocą USART (sprawdzane wielokrotnie na bank są dobre) do płytki z atmegą i serwomechanizmem. Jeżeli serwo jest sterowane bez ingerencji danych z USART to wszystko działa jak trzeba,...
Witam, właśnie budują pewien układ, ale napotkałem problem, z którym nie mogę sobie poradzić. Układ poprawnie wysyła wszystko do komputera przez USART, ale nic nie chce odebrać, nie wiem co jest grane, co robię źle. tak inicjuję usart: ldi temp, 0x00 out UBRRH, temp ldi temp, 12 out UBRRL,...
Witam, Nie mam problemu z obsługą USART tylko takie pytanie, które mnie nurtuje bo chyba się zakręciłem i nie do końca coś rozumiem. O jakie podwójne zwiększenie prędkości transmisji chodzi przy ustawieniu bitu U2X na 1 ??? Tzn co to ma wspólnego ze zwiększaniem prędkości transmisjii ? Przecież...
Witam. Napisałem prosty program do wysyłania i odbierania danych przez USART. Jednak nic się nie dzieje. UC - Atmega32 Q - 16000000 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define SetBit(x,y) x |= (1<<y) #define...
Witam Wykonałem układ, który komunikuje się z PC przez moduł BTM-222. Komunikacja USART, asynchroniczna 38.400 kbps, 1 bit parzysztości, 1 bit stopu. Jeśli zadeklaruję na stałe, że wielkość bufora wynosi np. 30, i wysyłam z PC 30 znaków, to komunikacja działa bez zarzutu. Problem w tym, że chciałbym,...
Witam, mam problem z połączeniem po USARCIE tych dwóch procesorów. Sprawa wygląda następująco: atmega1284p ma być docelowo masterem, wysyła ramkę i w odpowiedzi dostaje ramkę zwrotną od atmega8. Obsługa ramek nie jest jeszcze napisana, na razie wysyłam 8 bajtów atmegą1284p i jeżeli wszystkie bajty...
Witam, Postanowiłem opanować DMA. Zacząłem od USART'a i chciałbym to zrealizować. Moje problemy: 1. wysyłanie w konkretnym momencie(np. po naciśnięciu przycisku) 2. odbieranie danych 3. odpowiedni dobór DMA_BufferSize - wskazówki Konfiguracja: RCC_APB2PeriphClockCmd(RCC_APB2Per...
Witam. Od rana próbuje opanować komunikacje między dwoma mikrokontrolerami, jednak nie poczyniłem żadnego postępu, dlatego zwracam się z prośbą do Was. Posiadam dwa mikrokontrolery ATMega 8 połączone RXD1 - TXD2 TXD1 - RXD2 znajdują się blisko siebie, połączone przewodem 15 cm. Do jednego podłączyłem...
Witam! Mam problem. Podłączyłem atmege32 z BTM222 i na komputerze używał programu Realterm do obsługi portu szeregowego. Komputer się ładnie podłączył do BTM-a, to znaczy nawiązał połaczenie wpisałem kod 1234 i w programie Realterm jest napisane że się połączył. Chyba jest problem dalej, to znacyz...
Robisz transmisję USART i nie wiesz co to jest UDR? To do licha, jak udało ci się zrobić tą transmisję? Tak, w AVR odbiornik USART ma 2-stopniowy bufor. Ale skoro po transmisji zostają ci tam nieodebrane bajty, to znaczy, że czegoś nie odebrałeś. Skoro nadajesz 100 bajtów, to 100 musisz odebrać, najwyraźniej...
Witam, z uwagi na to, że bez pośredniego układu nie utworzę komunikacja stm->PC po rs232, zatem chcę wykorzystać do komunikacji dwa dostępne w procesorze USART'y, jeden działa w trybie nadajnik drugi odbiornik. Na płytce połączyłem jedynie pin PA9 - USART1_TX z pinem PC7 USART6_RX, to chyba wystaczy?...
Nie musisz odblokowywać ani obsługiwać przerwań timera. Jeśli raz włączysz wyzwalanie ADC, będzie ono włączone (raczej - co prawda STM32F1 są strasznie skopane, ale chyba nie aż tak). Nie ruszaj w ogóle rejestrów timera, których nie potrzebujesz. na oko potrzebujesz czterech dostępów - preskaler,...
Witam, zrobiłem transmisje szeregową z komputerem przez USART, teraz gdy zacząłem się wgłębiać w tą transmisję mam kilka problemów i nie mam pojęcia o co chodzi. Otóż zrobiłem transmisję z prędkością 9600bps, resztę danych zostawiłem domyślnie czyli ramka 8 bitów, 1 bit stop i bez parzystości. Później...
Bawię się USART'em na F0 przesyłając między dwoma prockami testowy bajt, Wszystko mi działa, ale nie mogę dojść, dlaczego muszę wprowadzać po wysłaniu danych do drugiego procka delaya(?). Bez niego testowe echo nie działa prawidłowo. Obecnie mam przebiegi jak na poniższym zdjęciu (transmisja bardzo wolna...
No cóż chyba faktycznie czegoś nie doczytałem. Przyznam że kwarc wybrałem na podstawie moich doświadczeń z uC ATmega gdzie częstotliwość 1,8432MHz zapewnia transmisję z błędami = 0 "zero". Sądziłem że w Xmedze będzie identycznie. Przecież prędkość 115200 jest idealna krotnością dla zastosowanego kwarcu....
Witam. Na początku wypada wspomnieć że jestem początkującym elektronikiem. Problem wygląda następująco: podczas próby wysłania jakichkolwiek znaków do PC przy pomocy Atmegi 162 i nadajnika RS232 Maxima komputer nie odbiera żadnych znaków(tylko chaszcze, zera itp.) Zaznaczam że: 1) Prędkość transmisji...
Witam Do wysyłanie znaków używam takiego kodu: #define C_GPI_1 (1<<2) UCSRB |= 1<<RXEN | 1<<TXEN; // transmisja: 8N1 UBRRL = 51; //9600 błąd 0.2% przy zegarze 8MHz TData[0] = 'P'; TData[1] = 'E'; for(int i=0; i<2; i++) { UDR...
Podsyłam prosty programik z polskiego helpa do bascom-avr. Bardzo dobrze obrazuje zasade wysylania i odbierania sygnalu szeregowego. Wiem, że niby temat jest zamknięty, ale może kolega jeszcze tutaj zerknie, a jak nie, to będzie dla innych :) '---------------------------------------...
Czekam 100ms po instrukcji print dla 115K nic to nie pomoglo zmniejszylem predkosc do 9600 nadal nic ;/ kod nadajnika $regfile = "m32def.dat" $crystal = 14745600 $baud = 9600 Config Serialin = Buffered , Size = 10 , Bytematch = 13 '##### Definicja wyswietlacza ##################### Config...
Witam! Problem polega na tym iz atmega komunikuje sie z PC, natomiast nie komunikuje sie z GPS.Pomimo prawidlowych predkosci oraz identycznego podlaczenia. Posiadam: - atmega644p - evb sim548 (gotowa plytka dostarczona przez producenta simcom, zasilona, z wyjsciem rs232 poprzedzonym jakims klonem...
Mógłbyś podesłać jakiś link na ten temat? :) Mam natomiast problem podczas słania z włączonym samym pinem nadającym. Otóż wg tego co napisano, przy wyłączonym odbiorniku, flaga RXC w rejestrze UCSRnA będzie automatycznie zerowana, a odebrane dane automatycznie uznane za odczytane z rejestru UDR -...
Zrobiłem to bez przerwań. Program może nie działa idealnie (mam problemy z odbiorem znaków - jutro na tym się skupię), ale udaje mi się wysyłać at komendy do modułu (np. zmienić nazwę modułu, czy pin) oraz przesyłać stringi przez bluetooth na laptopa. Poniżej funkcja wysyłająca i odbierająca pojedynczy...
Witam! Borykam się z następującym problemem. Przez USART1 pobieram dane z GPS i chce je przesłać dalej za pomocą USART0 (tymczasowo). Problem w tym, iż nie zawsze działa pobieranie odpowiedniej ramki ($GPRMC) Zrzut ekranu i kod programu poniżej.. proszę o jakieś wskazówki. Przerwania dla USART...
Witam. Proszę o pomoc w zrozumieniu podstaw. Atxmega128 (albo 256 - w tym momencie to nieistotne). Chciałbym przesłać po I2C dane z pilota. Posługuję się kodem: [syntax=c]TWI_MasterWrite(&twiMa... //adres urządzenia Slave &test[0], //dane do wysłania 3);...
Obstawiam kłopot z wykonaniem funkcji uart_printf. Na czas jej wykonania masz blokowane wszystkie przerwania. Sprawdź flagę stanu USART - pewnie masz błąd buffer overrun. Jeśli potrzebujesz szybkości dużo wyższych niż 9600bps, to pomyśl też o XMEGA, w której odbiór danych z USART możesz zrealizować...
Witam, Napotkałem w swoim już kiedyś wykonanym i sprawdzonym projekcie dziwną rzecz związaną z transmisją szeregową. Ustalam tryb pracy jako 9600N1 czyli 1 bit stopu i bez bitów parzystości, a robię to funkcją o tak : [syntax=c_loadrunner]void uart_init(uint16_t ubrr) { UBRR0H = (uint8_t)...
Wygląda na to, że możliwe, że jest to któreś z proponowanych rozwiązań. Co do bufora wejściowego to zwiększałem go do 4048 i nic. Bardziej wygląda to na coś z pamięcią i ze stosem, ale jak to sprawdzić? Oczywiście nie można zrobić wektora 1500 bajtów w ATmega8 - tam próbowałem różne wartości, mieszczące...
Dzień dobry, mam problem z odbieraniem danych w terminalu poprzez USARTa. Pracuję na STM32f052R8 do tego konwerter rs232 pl2303. Wysyłając jeden znak terminal czasem odbiera dobrze, a czasem inne znaki. Przy wysłaniu słowa "Test" pojawia się Bluescreen. Moje pytanie do Was, co powoduje Bluescreena...
Robię pewien układ, w którym potrzebuję komunikować ze sobą 2 mikrokontrolery stm32f103 jedynie w jedną stroną po usarcie. Będzie wysyłanych kilka float'ów z maksymalną możliwą prędkością. Jak podejść do tego tematu, użyć do tego DMA, tak, żeby procek był jak najmniej obciążony ciągłym odbieraniem danych?...
(at)Freddie Chopin Przepraszam za zawracanie gitary. Odwouje to co napisaem w tym wątku. W teście przypadkiem ustawiłem liczenie przerwań niewłaściwego U(S)ARTu. Jakie znasz trzeba było napisać nie traciłbym czasu. Myślałem, że napisałem że chodzi mi tylko o przerwania. Jeżeli było to niezbyt...
Komunikuję się z komputera PC z atmega8. Kontroler pracuje na wewnętrznym oscylatorze ustawionym na 8MHz. Prędkość transmisji w celu minimalizacji błędów ustaliłem na 9600 baud. Problem polega na tym, że błędy w transmisji zdarzają się niemal stale:(. Średnio udaje mi się przesłać prawidłowo co 4-5 bajt....
//Najpierw musisz ustawić odpowiednie parametry //np tak Kod: unsigned char odebrane; //zmienna globalna - definujemy ja przed wszyskimi funkcjami unsigned - oznacza ze przyjmuje warotsc od 0 do 255 unsigned char zmienna; #include <avr\sfr_defs.h> //pozwala sterowac...
Dodam tylko, że po drugiej stronie linii USART jest atmega 8, która poprawnie odbiera informacje. 30 znaków/s? Może podepnij ten sygnał jakoś do PC i sprawdź hiperterminalem przy jakich ustawieniach poprawnie odbierasz znaki. Tylko wysyłaj coś bardziej tekstowego.
Witam, Mam problem z komunikacją przez USART, będąc w debugu wykonując poniższą pętle krok po kroku (step into) wszystko jest ok, dane są wysyłane i odbierane. Natomiast po wciśnięciu run czy step over czasami zostanie wysłany i odebrany [Tx i Rx zwarte] jeden, maksymalnie trzy bajty(najczęściej liczba...
Tak to powinno być, żeby tylko ciągle wysyłało? Dalej niestety nie działa. [syntax=c]/* Includes */ #include <stddef.h> #include <stdio.h> #include "stm32l1xx.h" //defined USE_STM32L_DISCOVERY #include "discover_board.h" #include "stm32l_discovery_lcd.h" /* Private typedef */ /*...
Problem mój jest taki, chciałbym zrobić robota mobilnego sterowanego poprzez USART kablem RS232, w wyniku odebranego znaku ASCII robot ma za zadanie poruszać swoimi silnikami. Moim problem jest, iż chciałbym aby wysyłając sygnał jazdy np. do przodu znakiem np 'w', mikrokontroler zliczył mi czas trwania...
Witam, otóż mam następujący problem: timer wywołuje mi okresowo procedurę wysyłającą na RS jakieś dane. Jeżeli resetuje układ przez złącze RST poprzez zwarcie do masy przyciskiem lub też poprzez programator wszystko działa prawidłowo - znaki odbieram na terminalu. Ale gdy układ z procesorem zostanie...
Witam Posiadam płytkę STM32F4 Discavery chciał bym uruchomić USART6 ale przesyła mi złe dane. Sprawdzałem już zegary ustawienia usart ale nic mi już nie przychodzi do głowy. Zegary ustawione są przy pomocy funkcji SystemInit(). Cały plik sytem_stm32f4xx.c generowałem przy pomocy narzędzia STM32F4xx_Clock_Configuration_V1.1.0...
Co może być przyczyną tego, że zamiast wysyłanego "hello" odbieram w termianlu "hhhhheeeeeellllllllllllllllllllloooooo"... Dodam, że przy wyłączonym DMA nic takiego nie ma miejsca.
Po co tempe_str jest volatile? Jak się ma wysyła przez USART informację do PC Dla zmyły bufor nadawania nazywa się uart_rx_buffer? Czy nagle zalozenia sie zmienily i jednak procek ma odbierać, a nie nadawać? Nic juz nie rozumiem... Dlatego chciałem uniknąć opóźnień wysyłania w przypadku...
Witam Pisze program przetwarzający dwa kanały ADC (potencjometr i termometr). Używam do przesyłania danych DMA i w końcu USARTA do wysyłania danych do terminala. Problem polega na tym, że cały czas odbieram zerowe wartości, tak jakby DMA w ogóle nie przesyłało danych. Prosiłbym o pomoc z rozwiązaniem...
Witam odwiedzających temat. Napotkałem na problem przy konfiguracji USARTu. Chcę ustawić jego parametry następująco: prędkość : 19200 bity danych: 7 bity stopu: 2 parzystość: parzyste Moja konfiguracja wygląda następująco: [syntax=c] USART2->CR1=0...
Napis jest w pamięci programu, czyli we FLASHu. Żeby to zadziałało, musisz albo przenieść napis do RAMu, albo odpowiednio zmodyfikować funkcję, żeby czytała znaki z tej pamięci. Zainteresuj się funkcją pgm_read_byte i jej pochodnymi. Nieprawda, napis znajduje się w pamięci SRAM mikrokontrolera i pokazany...
Na ogół nie ma to sensu, bo zazwyczaj dane odbierane przez USART nie mają stałej długości,a sprawdzanie, ile ich przyszło przez DMA przysparza więcej problemów niż odbiór danych na przerwaniach bez DMA.
Witam, Ostatnio mam przyjemność zabawy z płytką STM32F746NG Discovery. Mam problem z usartem... Nie jestem w stanie odebrać znaku w konsoli mojego komputera. Chciałem zrobić tak samo jak to się robi np.: w Nucleo, czyli korzystam z USARTA2, piszę odpowiednią funkcję do wysyłania znaków i w whilu daje...
Nie korzystam z systemInit ani zadnej innej biblioteki, cały kod który mam jest napisany w 100% przeze mnie. Czyli dobrze założyłem, to 16Mhz, pytanie ktore dalej pozostaje bez odpowiedzi to co jest nie tak ? :( Chyba jednak nie cały. Nie napisałeś nic o środowisku - obejrzyj SystemInit(). Najbardziej...
Cześć, mam problem z komunikacją z modułem HC-05 za pomocą USART, operuję na uC xmega32A4U więc wspiera komunikację po USB z wykorzystaniem CDC. Komunikacja USB CDC działa, mogę wyświetlać różne wiadomości do serialu. Mam problem z komunikacją z modułem HC-05 - po odpaleniu terminala nie mogę wpisywać...
Witam, Napisałem program który wysyła kolejno bajty przez USART do drugiego urządzenia i jednocześnie odbiera bajty (taki powiedzmy full-duplex :)) . W zasadzie nic specjalnego program wygląda następująco: . Czy przyczyną są drgania styków? Wcześniej tą komunikacje realizowałem za pomocą DMA...
Chciałem odbierać dane o rożnej wielkości za pomocą USART'a. Robiłem to za pomocą funkcji [syntax=c] HAL_USART_Receive_T... [syntax=c] void HAL_UART_RxCpltCallback(UART_HandleTypeD... *huart); [/syntax] próbowałem rożnych sposobów jak odbieranie pojedynczych znaków, zapisywanie...
Dziekuję za wszystkie dotąd udzielone mi porady. Jeśli chodzi o transmisję binarną printbin, inputbin to próbowałem wyszło super przede wszystkim zmniejsza liczbę byte ramki chodzi mi o to, że gdy wysyłam parametr do pwm np. 255 to używam 3 znaków ASCII czyli 3 byte a binarnie wyśle byte 255 i to tyle...
No więc zrobiłem i nadal jest nie tak jak potrzeba. Program zajmuje się tylko odbieraniem danych. Mimo uzycia komendy jedynie odbioru pod warunkiem naciśnięcia guzika, procesor odbiera dane bez względu na to czy przycisk był wciśnięty czy nie. Z tego co widze to jest zajęty jedynie odbieraniem danych...
Witam, bawie sie teraz usartem w atmega32. Uzywam AVR Studio i bazgrze w c. Odbieranie idzie mi bez wiekszego problemu ale zastanawiam sie nad takim tematem mam tak: uint8_t rs_command[sizeof(int)*8+1]; pozniej oczekuje z uzyciem case na 0x0d czyli enter. no i powiedzmy jak wpisze a11 enter...
Witam! Wiem ze sto razy to bylo i prosze o wyrozumialosc. Chodzi mi o transmisje danych (w obie strony). A dokladniej jak by mi ktos napisal jak mam od podstaw zbudowac programik ktory wysyla "cos" np. do PC i zniego odbiera tez "cos". Ucze sie na ATMega8 w asemblerku. Chodzi mi taki uniwersalny...
Jakieś 4 dni męczyłem się żeby uruchomić transmisję pomiędzy Atmegą a kompem po rs232. Niezmiernie zaskoczyło mnie to, iż wszystko zaczęło działać gdy bity:UCSZ0,UCSZ1,UCSZ2 ustawiłem na 0. Czyli (według informacji Atmela) ramka danych miała 5 bitów, a przesyłałem dane 8 bitowe. Przy ustawieniu tych...
Witam, dokładny opis podłączenia się do telefonów Nokia przez interfejs Mbus/Fbus znajdziesz w EP 7/8 z 2003 roku. Są tam prościutkie schemaciki z MAX232. Ale niestety opis samego protokołu choć jasny i klarowny nie ukazuje komend (jeśli są?) do komunikacji z telefonem w celu wysyłania czy odbierania...
Ot takie głupie pytanie, ale nie potrafiłem znaleźć odpowiedzi. Jaka jest kolejność bitów w bajcie odbieranym przez procesor po RS? Pierwszy docierający bit będzie bitem b0 w bajtowym buforze odbiorczym, czy bitem b7? Innymi słowy wysyłam w kolejności 1 potem 0000000 a procesor odbierze 128 czy 1?
Witam, kolego jeśli chcesz zrobić to dobrze i używać w najprostszej wersji RS232 to zrób to wg tego schematu dokłanie. Zwróć uwagę na połączone piny w gniazdku DB9 - tzn 6 i4 oraz 7 i 8. tylko wartości kondensatorów mogą być mniejsze od 1uF do 4,7uF taki układ zawsze będzie ci ładnie...
Teraz działa jak trzeba. Skoro wysyłam znaki to powinienem i odbierać. Mam jeszcze AT89S8252 zaprogramowany tak aby po rs wysyłał 1 znak i chcę aby atmega go odebrała. Lecz nie działa. Połączyłem procki zwykłym 2 żyłowym kablem - czy to wystarcza?
Witam. Jak obsługiwałem Attiny2313 w c i dane z RS-a odbierałem w przerwaniu. Nie mogłem dojść do ładu dlaczego to nie działa. Jak zacząłem szukać to okazało sie ze ten uC ma problemy właśnie z przerwaniami i usartem. Zmieniłem procek i ten sam kod zostawiłem tylko inny plik nagłówkowy wrzuciłem i wszystko...
Ten terminal nie obsługuje transmisji 9 bitowej ale może odebrać dwa bity stopu co niestety może Ci powodować przeszkody w transmisji i generować błędy. Natomiast na mikro procesorach możesz to dowolnie odbierać.
chyba mnie ktoś zaraz zabije za ilość zadawanych pytań :( ale do rzeczy prawie sie uporałem z komunikacja, ale mam problem z odbieraniem znaków nie bardzo wiem dlaczego poniższy program nie działa poprawnie własnie pod tym względem niby ok ale nie do końca :( będę wdzięczny za pomoc #include...
Niewidoczne zasilanie i masa maxa232 są podłączone. A tak jest zaprogramowany moj PIC (probuje wysłac narazie pojedynczy znak): #include <p18f2620.h> #include <stdio.h> #include <stdlib.h> #include <adc.h> #include <usart.h> #include <pconfig.h> #include...
Na pewno chodziło ci o transmisję z 2 bitami stopu? To trochę nietypowa konfiguracja, spróbuj może klasyczne 9600 N 1. Sprawdź, czy na wyświetlaczu pokazuje ci dobrze jakiś stały tekst zapisany w programie. Zrób jak pisał balu - choćby prosta pętla w której po otrzymaniu np. 10 znaków bufor zostanie...
Po pierwsze proponowalbym zmienic troche ta funkcje: void wyslij_znak(unsigned char znak) // bylo: unsigned int { if (znak == '\n') znak = '\r'; // bylo: wyslij_znak('\r'); while (!(UCSRA & (1<<UDRE))); UDR...
Kolego, delikatna masakra z listingu 1: if(temp2>0) { jeśli temperatura 0 to nie odpowiadamy i atmega wisi? cbi(DDRE, PE2); //sygnał XCK jako wyjście rs0_putch(temp2); //wyślij otrzymane dane i może wypadałoby przestawić XCK spowrotem na weście? z...
Ustawiłem w terminalu na PC baud 300 i o dziwo odbieram 0F - czyli to co wysyłam. Nie wiem tylko gdzie mam błąd skora w uP ustawiłem na 2400. Fuse bity też chyba ok. Dodano po 33 Już wiem co było źle. Po prostu wcześniej korzystałem z USARTa synchronicznego w którym inaczej oblicza się baud...
Witam, szukam programu - terminalu do obsługi portu rs232 na komputerze (wysylanie I odbieranie danych) Znalazłem kilka ale żaden nie pokazuje portu com13 (mam przejście usb<->rs232) Dziękuje za pomoc
wynik: 7- -9,4... 8- 0 9*- 1,5... 10*- 5 więc układ działa Skynet: Już tak zrobiłem wieki temu wysyłał i odbierał to samo. jak wysyłasz i odbierasz to samo, to max232 działa poprawnie. więc jedyny problem to chyba µC, tylko już nie mam pomysłu gdzie leży problem. edit: spróbuj...
jak pisałem wcześniej, musisz sobie zaprojektować programową ramkę danych z jakąś sumą kontrolną i np wysyałać kilka ramek jedna po drugiej. W odbiorniku muszą odebrać się np 2 ramki bez błędów i wtedy można przyjać, że nadleciały dobre dane. To pozwoli ci w jakiś sposób na pewno na przezwycieżenie problemu...
Witam, Od jakiegos czasu pracuje nad urzadzeniem komunikujacym sie z PC za posrednictwem USB. Ostatnio padla decyzja ze trzeba zastosowac ft232rl zamiast sprzetowego USB procesora poniewaz ftdi ma dobre wsparcie bibliotek na PC i ogolnie latwiej jest to stosowac niz uzerac sie z domyslnym sterownikiem...
Napisz protokół który na początek szuka ciągu synchronizującego odbieranego z PC. ciąg ten to niech będzie $AA w efekcie twój kontroler może sam się synchronizować do dowolnego urządzenia i na dowolnej prędkości. Na tej podstawie dobierze parametry czasowe dla nadajnika. Nie będziesz zależny od pływającego...
Nie niedziała :( Cały czas odbieram albo 0xC0 albo 0xFF... Raz tylko zdarzyło się że odebrałem wartość taką jaką wysłałem. Czy może być to związane tym że procka z układem RS485 mam podpiętego na kabelkach (takie jest rozwiązanie zestawu)?
Witam. Najpierw na Windowsie napisałem prosty program w bascomie do komunikacji przez rs232(Program ma dwie komendy pierwsza odbiera coś przez rs232 a druga to wysyla i tak w kułko), w terminalu od bascoma wszystko działa. Gdy użyłem Open USART Termianal, nic się nie działo więc wyłączyłem go i przeszłem...
Witam wszystkich! Mam pewien problem, który co prawda rozwiązałem, ale rozwiązanie te mnie nie zadowala. Do rzeczy. Postanowiłem napisać funkcję, która jako argument pobiera napis i po znaku wklada do UDR'a. Najpierw mój program wyglądał tak: #define F_CPU 1000000L #define BAUD 9600 #define...
zgadzam się z przedmówcą ,włącz przerwania i odbieraj dane w przerwaniach ,dodaj : UCSRB = _BV(RXEN) | _BV(TXEN) | _BV(RXCIE); oraz : ISR(USART_RXC_vect) //przy odebraniu znaku { bufor = UDR ; }
• A second Buffer Register has been added. The two Buffer Registers operate as a circular FIFO buffer. Therefore the UDR must only be read once for each incoming data! More important is the fact that the Error Flags (FE and DOR) and the 9th data bit (RXB8) are buffered with the data in the...
Witam, Chciałem skomunikować ATmege128 z komputerem PC. Korzystając z manuala do tego kontrolera uzyskałem funkcję inicjalizującą: void USART_Init( unsigned int baud ) { /* Set baud rate */ UBRRH = (unsigned char)(baud>>8); UBRRL = (unsigned char)baud; /* Enable receiver and transmitter...
Ja mam u siebie troche inaczej. Ale najlepiej skorzystać z datasheeta bezczelnie kopiując kod. Po co Ci to L po określeniu taktowania? Piszesz w WinAVR czy czymś innym? Init: #define FOSC 8000000// Clock Speed #define BAUD_GPS 9600 #define MYUBRR_GPS FOSC/16/BAUD_GPS-1 ////////////////////...
Najpierw trochę uszczypliwości - co każe ci myśleć, że twój program jest napisany w C++? Skąd informacja, że float zajmuje 2 bajty? A teraz rozwiązanie - można konwertować liczbę na string i wysyłać string - wada - string zwykle będzie dużo dłuższy niż przesłanie po prostu floata. Ale ma też zaletę...
Fajfer2, zanim uznasz temat za zamknięty przejrzyj ten wątek: Ze szczególnym uwzględnieniem uwag Freddiego i moich, bo może się okazać, że to co odbierasz na PC to będzie totalna kaszana. Prawda jest niestety bolesna i jeśli bez żadnych dodatkowych założeń chcesz przesyłać floaty na PC to najlepiej...
4. Ktoś po drugiej stronie (np. terminal) odbiera znak Nie ma takiego czegoś jak "ktoś po drugiej stronie odbiera znak" [: Masz tylko dwie linie TX/RX i wyślij/odbierz, więc nie ma informacji, że znak został odebrany albo zaginął w eterze. Jeżeli chciał byś kontrolę to potrzebujesz [url=]flow control.
no tak, no to ja to rozwiązałem z multiplexerem ręcznym w postaci przełącznika, bo już nie mogę pozmieniać PCB, ale ok - rozumiem że inaczej nie da rady... A teraz tak, próbuję się skomunikować , i coś mi nie działa... próbuję normalnie konfigurować coma (tak mi działało gdzie indziej) : [ code...
Witam, Moja przejściówka USB - RS232 okazała się być jakimś chińskim szajsem więc nie mogę chwilowo sprawdzić poprawności kodu. Czy ktoś mógłby rzucić okiem i stwierdzić czy poniższy kod ma szansę funkcjonować? ATmega jedynie odbiera jeden bajt po RS'sie i w zależności od tego czy jest to 1 czy 0,...
Witaj, skoro warstwę sprzętową masz ok to proponuję sie przyjrzeć samemu programowi. Zrobił bym to tak. 1. Wyślij z PC-ta wartość 0x5A 2. Odbierz tą wartość w Atmedze i zrób sobie instrukcję warunkową np. if(odebrany_bajt == 0x5A) ustaw_pin = 1; (jakiś wolny pin procka) else ...
W transmisji synchronicznej nie ma czegoś takiego jak bity startu i stopu. To są bity charakterystyczne dla transmisji znakowej (asynchronicznej). Transmisja synchroniczna jest zorientowana bitowo i dane odbiera się analizując odebraną ramkę - np. określony ciąg bitów jako znacznik początku czy końca...
Nie ma takiej możliwości. DMA w STM32 nie ma funkcji przerzutu do tokena. Takie coś ma np. DMA zaimplementowany w PIC32. Na twój problem stosuje się specyficzne obejście, tzw. szukacz :] (nie wiem czy jest to nazwane profesjonalnie, ale wiadomo ocb) Sytuacja: 1) DMA jest skonfigurowany w circular...
Witam, mam mały problem. Buduję urządzenie które ma komunikować się radiówką z komputerem. Używam modułów Zigbee Atmela zakupionych w Maritexie. Problem polega na tym że nie jestem pewien czy do końca dobrze zrobiłem schemat podłączania modułu do zasilania i tu prosiłbym o komentarz do dodanego...
od tego są flagi UARTU. Odbiór w przerwaniu odbierasz tylko znak, i instrumentujesz zmienna static oznaczająca ilość danych już odebranych, gdy odbierasz 0x55 (początek ramki - nigdzie indziej nie może zostać przypadkiem wysłana) zmienna ustawiasz na 0. dalej dekrementacja licznika dalej warunek końca...
Witam. Tak czytam szukam, ale nie bardzo mogę znaleźć i zrozumieć. Widnieją w liście wektorów przerwań pozycje od skończenia odbierania danych. Jaka jest nazwa 'uchwytu' stosowanego w 'funkcji' SIGNAL jak np w obsłudze przerwania przetwornika A/C, aby obsłużyć wydarzenie jakim jest skonczenie odbierania...
Po uruchomieniu terminala nawiązaniu komunikacji, gdy wcisnę na klawiaturze coś zupełnie innego niż literę "w" dioda podłączona do PD4 nie świeci (to jest ok). Gdy wcisnę "w" jednokrotnie, to mi mrugnie i to też jest w porządku. Jednak, gdy wcisnę od razu "w" i trzymam to dioda LED mrugnie, wygasi...
Z jakiegoś powodu mikrokontroler jest zbyt zajęty i nie nadąża z odbieraniem bajtów. Możliwe rozwiązania: -zwolnić transmisję (fee) -użyć przerwania mikrokontrolera, gdzie w tym przerwaniu kolejne bajty są dodawane tylko do tablicy i główny program w jakiś sposób stamtąd je obsługuje (albo np czeka...
Możliwe przyczyny: 1. Użyłeś procesora nowego typu, inaczej obsługują UCSRC 2. źle dobrałeś czestotliwosci, tabela jest w instrukcjach obsługi Częstotliwosć mozesz oszacować ustaw prędkosci tak by w komputerze była kilka razy większa od tej w AVR wyślij jeden bajt FF lub 00 i zobacz co odbierasz,...
Sprawdziłem i program w ogóle nie wchodzi do warunku if(Flaga==1). W przerwaniu Flaga jest ustawiana bez problemu, jednak mimo to program nie wykonuje instrukcji w if(Flaga==1). Ma ktoś jakiś pomysł dlaczego?? Dodano po 5 Hmm. Miałeś racje z tym volatile. Dałem volatile int Flaga i teraz jest...
Sprawdzilem i dalej nie wiem co jest grane. W trybie release moge wyslac wartosci przez usart, ale nie moge nic odebrac. Odbieranie probowalem zrobic na przerwaniach i w petli glownej. Za kazdym razem w trybie release nie moge nic odebrac. Ma ktos jakies pomysly co jest grane?
Niestety nie dało to żadnego efektu. Przechodzi przez tą pętlę ( tak jak by wysyłanie zostało zakończone ) ale na terminalu nic nie pokazuje :( A dane odbiera za każdym razem. Nie mam tego zrobione na przerwaniu ze względu na to że chciałem przetestować wysyłanie i jak nie działało to chciałem zobaczyć...
Tak, to się tak właśnie robi. Oczywiście odbierasz wszystko w przerwaniu, wrzucasz do bufora, po odebraniu pełnej ramki ustawiasz flagę, którą można odczytać z pętli głównej programu. Dla pełnego bajeru transmitowane ramki powinny mieć jakąś kontrolę integralności. Dla jeszcze pełniejszego bajeru można...
Witam, muszę koniecznie połączyć stm32 z pic18f2480. Problem jest taki, że pic chodzi na 5V (nie można tego zmienić, gdyż jest on mózgiem interfejsu ELM327 v1.4 zasilanego 5V). Ponadto w interfejsie siedzi FTDI i może to jest problemem w komunikacji, jednakże, wolę spytać o opinie zanim coś odłączę. Znalazłem...
w JAKIM terminalu? Może liczbę wysyłasz jako 3 znaki? No skoro sam nie jesteś pewny i piszesz chyba to warto zacząć od tego sprawdzanie. Poza tym trochę dziwne jest to odbieranie "ramki" w przerwaniu - zastosuj jakiś normalny bufor cykliczny...
Patrz ustawiasz nadawanie, wpisujesz dane do nadania i odrazu przełączasz na odbieranie co się stanie? Napewno cała ramka nie przejdzie więc odbiornik to zignoruje. Teraz przed przełączeniem czekasz te 2ms i przechodzi cała ramka. Dlatego trzeba czekać nazakończenie wysyłania ramki przed przełączeniem...
A ile razy to trzeba wysłać żeby się udało? Wystarczy raz. Ważne, żeby to był duże litery A i T. Sprawdziłem w nocie bo coś mi nie pasowało i jednak masz błędną wiadomość na starcie modemu. Powinno być : "00 49 49 49 49 FF FF FF FF" Także sprawdź jeszcze raz połączenia. Wygląda mi to...
Waitms 200 w odbiorniku jedynie przeszkadza. Wysyłasz co 80 ms a odbierasz co 200 ms. Już samo Input I zatrzymuje pętlę w oczekiwaniu na dane + CRLF.
To zależy jak wysyłasz znaki, niektóre funkcje, np. sprintf same dodają null na końcu, zależy to także od zapisu literału. Oprócz niepotrzebnego odczytu UDR musisz też inaczej rozwiązać powiązanie bufora zapełnianego w przerwaniu z odczytem w głównej funkcji programu. Bo teraz jeśli porównanie wypada...
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; ...
Witam, Proponuje koledze postąpić troszkę inaczej. Rozbudować ramkę danych dodając znak startu i znak stopu. Odbieramy znaki i pakujemy je do bufora w przerwaniu a w programie głównym sprawdzamy czy odebraliśmy bajt start i stop oraz czy liczba bajtów w buforze jest prawidłowa. Kiedyś napisałem...
Twój kod a także same założenia są już pełne błędów. Zatem to co obserwujesz jest tylko wypadkową tego wszystkiego co robisz źle. 1. co to za inkludowanie plików *.c ???? Inkluduje się TYLKO pliki nagłówkowe *.h 2. co to za rozbicie inicjalizacji nadajnika i odbiornika ? Choć teoretycznie mogłoby...
1) Brak deklaracji CONFIG COM w obu programach 2) W odbiorniku wyrzuć TOGGLE i wstaw RESET bo za chwilę napiszesz czemu led się ciągle świeci ale przyciemniony 3) W odbiorniku wykorzystaj ISCHARWAITING i INKEY. Odbierasz tylko A i na podstawie czy jest =10 czy =15 wykonujesz ifa do świecenia ledem
Do wstępnej konfiguracji korzystam puki co z SystemInit() dostarczonego przez ST z uwzględnieniem przeze mnie rzeczywistej prędkości zegara (8mhz). Funkcja opóźniająca oparta na SysTick wydaje się że działa dobrze (stan diody zmienia się co 1s): [syntax=c]void Czekaj_ms(int ms) { int i; for(...
Już pisałem do portu dochodzą dane, już to sprawdziłem... Elementów w obudowach SMD nie sprzedają ze spalonymi wyprowadzeniami, ale istnieje ryzyko spalenia wyprowadzenia podczas lutowania, z czym już się spotkałem. Port sprawdziłem, dane są wystawiane i odbierane prawidłowo (zapalanie diod i reakcja...
W porządku. Umknęło mi wcześniej w opisie, że to moduł ma się łączyć nie PC. W takim razie ustawienia masz oczywiście dobre. Co dalej? Moim zdaniem powinieneś na próbę zmienić podprogram odbierania znaków. Nie filtrować od razu LF i reagować na CR a wczytać napływające bajty do tablicy i je wyświetlić....
Witajcie, Posiadam płytkę STM32F4DISCOVERY z procesorem STM32F407VG. Używam pakietu Eclipse + linaro + openOCD skonfigurowanego wg opisu Freddiego Chopina. Uruchomiłem również przykładowy program stm32f4_blink_led. Chciałem dołożyć obsługę USART1. Konfigurację napisałem w pętli main. [syntax=c] int...
Witam, Jak w temacie. Program zrobiłem tak, że jak dostanie dane z rs232, to weźmie je pod uwagę, a jak ich nie dostanie, to ich nie weźmie pod uwagę i pójdzie dalej. Mój problem polega na tym, że nie idzie dalej. Cała komunikacja jest na pewno ok, gdyż normalnie wysyłam i odbieram dane, gdy wiem,...
Chciałbym zrobić wysyłanie i odbieranie za pomocą przerwań(zgodnie ze sztuką),aby nie "zawieszać" wykonywania pozostałych operacji. Zacząłem od wysyłania. W wielu bibliotekach, które przeglądałem spotkałem się z takim podejściem, więc sam też postanowiłem je wykorzystać. W docelowym układzie oprócz UART,...
Witam, mam pytanie dotyczące komunikacji ATMegi działającej na 5V z urządzeniem 3,3V. Jeżeli chodzi o transmisję z uC do urządzenia to zwykły dzielnik napięcia wystarcza, mam natomiast pytanie jak to jest z odbieraniem danych - powinno działać bez niczego tylko mam jedną wątpliwość, oba piny od...
Witam próbuje skomunikować dwie atmegi (ATmega32A i ATmega32) po uarcie, ale nie do końca mi to wychodzi. Mianowicie problem wygląda następująco: Posiadam dwa moduły do komunikacji bezprzewodowej [url=]miface1b oparte o ATmege32 oraz płytkę stykową z ATmegą32A. Pojedynczy znak za pośrednictwem [url=]terminala...
Wszystko zależy od tego ile masz wolnego czasu i pamięci mikrokontrolera. Ja np. często wysyłam napięcia w postaci szesnastkowej, bo to nie kosztuje praktycznie nic po stronie uC, a program odbierający na PC odczyta je łatwiej niż z postaci dziesiętnej. Samo dzielenie przez 10, potrzebne do konwersji...
Wiesz, gdyby wystarczały dwa przewody, jeden dla RXD, drugi dla TXD, to w gniazdkach w ścianach byłaby jedna dziurka, a we wtyczkach zasilania - tylko jeden bolec. 50 m to zdecydowanie za daleko dla takiej transmisji (z trzema żyłami oczywiście - musi być wspólna masa. Ogólnie jest to na ogół za daleko...
Przy zegarze 1 MHz możesz transmitować najwyżej z szybkością 4800. Potrzebujesz odbioru danych z UART w przerwaniach. Po każdym poleceniu musisz wysłać CR, LF - najlepiej zapisz to od razu w łańcuchach poleceń, a po wysłaniu - odbierasz i sprawdzasz to, co odpowiedział modem. Modem na AT powinien...
Witam, jestem początkującym programistą. Zamierzam napisać program na µC ATmega8, który odbierze liczbę z zakresu 0-255 przez USART i ustawi odpowiednio rejestry OCR1A i OCR1B w zależności od wysłanej liczby i przypisanemu jej rejestrowi. Próbowałem napisać kod, który po wysłaniu 'y' dla rejestru...
Witam, mam następujący układ: płytka z atmega128 i ENC28J60 połączenie db15 (taśma 15-sto żyłowa) z płytka z 16x rs485 połączenie RS485 z płytką z atmega32. Z serwera www jest inicjowana transmisja do ENC28J60, m128 za pomocą SPI (Ffreq/2 18432000) komunikuje się z ENC28J60, pobiera dane...
problem w tym, że tak jak pisałem, nie istnieje kod odbierający dane z UART. Cały interfejs na potrzeby testów jest całkowicie wyłączony - nie inicjalizuję UART, nie ma żadnej implementacji przerwań związanych z UART (ani rxc, ani txc). Trudno mi to pokazać bo tego zwyczajnie nie ma. Specjalnie maksymalnie...
Czyli obecnie masz zepsutą i błędną funkcję pobierającą rzekomo łańcuch, a w rzeczywistości jeden znak na ATmega oraz program na PC niedopasowany do poprzedniej, nieco kulawej ale jakoś działającej funkcji odbioru łańcucha. Program na PC nie może wysyłać nowych znaków dopóki nie odbierze całego łańcucha...
Witam, W taki sposób konfiguruje USART: aaaaa=100,bbbbb=2000 I chcę uzyskać: [syntax=c]int a = 100; int b = 200;[/syntax] Próbowałem się bawić z tą funkcją: [syntax=c]void USART1_IRQHandler (void) { u16 c; if (SET == USART_GetFlagStatus (USART1, USART_FLAG_RXNE)) { c = USART_ReceiveData...
Witam! Nie mogę dojść do tego co się dzieje. W zamierzeniu program powinien czekać na ustalone znaki z USARTa i odpowiedzieć kilkunastoma znakami tekstu. Objaw jest taki, że po otrzymaniu 1 znaku odpowiada trzema prawidłowymi znakami a potem siedzi w przerwaniu z którego nie może się wykaraskać (tzn....
Po prze-lutowaniu paru elementów i ponownych testach linia nadawcza działa już z maksymalną prędkością 115 200 :) linia odbiorcza działa do maksymalnej prędkości 14 400 przy próbie podłączenia linii odbiorczej bez konwertera odbieram śmiecie Można by się pokusić o zmianę sposobu...
Dzięki za odpowiedź. Upgrade oprogramowania programatora robiłem wczoraj, to soft jest aktualny. Zrzut ekranu dla trybu hex jest w załączniku. Jak widać na skrinie tym razem CTS nie jest zapalony. Nie wiem czemu wtedy był zapalony. Testowałem taką opcję, że napisałem przerwanie USART_RXC_vect, w którym...
Mam gdzieś program pisany w Netbeans wykorzystujący dwukierunkową komunikację przez RS. Z programu wysyłało się wartość od 0 do 255 suwakiem, a program odbierał temperaturę z czujnika. Może byś go sobie jakoś dostosował, jak coś pisz na pw.
Program, który odbiera dane po TCP musi być napisany tak, jakby dane przychodziły po 1 bajcie. Bo TCP to transmisja strumieniowa (dokładnie tak samo, jak z RS-em, więc wszystkie uwagi dotyczą też aplikacji korzystającej z seriala). W żaden sposób nie jest zapewnione by dane były odbierane takimi samymi...