Po pierwsze - czy ustawiłeś prawidłowo fusebity, aby procesor pracował na zewnętrznym oscylatorze? Po drugie - w karcie katalogowej jest informacja, że rejestr UBRRH i UCSRR znajdują się pod tym samym adresem, więc instrukcją UCSRC|=_BV(UCSZ1)|_BV(UCSZ0&... wpisujesz tak naprawdę wartość do rejestru UBRRH! Aby wpisać ilość bitów danych...
1. Korzystasz z różnych przerwań ale nie uruchamiasz ich globalnie - sei() 2. Aktywujesz przerwanie od pustego bufora - UDRIE - ale nigdzie nie obsługujesz tego przerwania. 3. Obsługujesz przerwanie od zakończenia nadawania - TXC - ale nigdzie nie aktywujesz tego przerwania. 4. UCSRC - to co uruchomiłeś to transmisja z dwoma bitami stopu. Czy na pewno...
A mógłbyś to jakoś opisać kodem ? [syntax=c]#define BAUD0 9600 //BaudRate (bps) #define MYUBRR0(F_CPU/16/BAUD0-1) //Przerwanie co 0.1s ISR(TIMER1_COMPA_vect) { uint8_t key; static uint8_t lkey=0; key = (PINC & (1<<3)); //przycisk NPN na PC3 if(!key && lkey) UDR='k'; //wyślik "k" jako znak, że wciśnięto przycisk lkey = key; } //przerwanie...
http://obrazki.elektroda.pl/5959558100_1... Witam :) Razem z kolegą chcielibyśmy się pochwalić naszą maszyną :) Jest to ramie robota oparte na serwomechanizmach modelarskich. Ja zająłem się sterowaniem i elektroniką, a kolega robił projekt 3D w SketchUp i konstrukcje http://obrazki.elektroda.pl/9008440700_1... Początkowo...
Jak usunąłeś to #define __AVR_ATmega168__ to zdeaktywowałeś w drugim pliku tą część: #if defined (__AVR_ATmega168__) UCSRC |= ucUCSRC; Tu też doklej wszystkie uC tej "rodziny", no i jak używasz UART0 to w tym samym miejscu możesz dodać 328PB lub jako kolejny #elif. Niestety biblioteka jest tak napisana, że jak użyjesz uC nie ujętego w tym miejscu to...
Witam. Od paru godzin męczę się z niedziałającym USARTem na atmedze32. Na atmedze88 wszystko śmiga jak ma więc przejściówka USB<->RS232 jest ok. Brak zimnych lutów na płytce. Kwarc zewnętrzny (ustawiony jako EXTHIFXTALRES_258CK_4MS - przy czym nie wiem czy tak ma być dla kwarcu 16MHz). Kod zamieszczam poniżej: [syntax=c] /* * softPWM.c * * Created:...
piotrwzk - wlasnie udalo mi sie uruchomic rf12.... powiedz w jakim jezyku piszesz ... Ja uruchomilem rfm na atmedze 8 z wewnetrznym oscylatorem 8mhz zasilanie to 3,3V .. Postaram sie pomoc ...a no i zamiescic jakis ludzki opis :) ... powiem ze nie udalo mi sie uruchomic tych modolow w Bascomie - czasem cos dzialalo , czasem nie ,,, nie wiem wydaje mi...
Znalazłem błąd w programie czytając datasheeta jeszcze raz! Wszystko działa! Chodziło o to że brakowało (1 << URSEL) przy wpisywaniu wartości do rejestru UCSRC a ten rejestr dzieli adres z innym i trzeba tą jedynkę wysłać! Dzięki za wszelkie próby pomocy! Pozdrawiam
Ponawiam temat. Bo nie wiem, co może być przyczyną, że nie mogę wpisać nic do rejestru UCSRC. Programuje przez JTAG. I czy to ATmega 16,czy 32 to zawsze UCRSC==0x00 Kod: 90: UCSRC = _BV(URSEL)|_BV(USBS)|_BV... +00000C07: E88E LDI R24,0x8E Load immediate +00000C08: BD80 OUT 0x20,R24 Out to I/O...
Witam dopiero uczę się programować mikrokontrolery i wystąpił u mnie następujący błąd: zamierzam wysłać przez uart tablicę play niestety w real terminalu zamiast jej zawartości widzę następujące wyniki: 7EFFD08081F7EF albo BE06038081F7EF dodam że moduł z którym chce się skomunikować (dfplayer mini wysyła prawidłowe komunikaty) a gdy przy tej konfiguracji...
Witam Próbuję połączyć dwa uC za pomocą komunikacji UART. Attiny ma za zadanie nadanie jednego znaku ASCII natomiast Atmega powinna go odebrać i wyświetlić na wyświetlaczu lcd. Niestety kontrolery nie mogą się dogadać, programy realizujące to zadanie są praktycznie wklejone z not katalogowych Atmela, ale zamieszczam je niżej bo może coś pokręciłem....
Jeśli chodzi o programowanie to sobie poradziłem. Rzeczywiście chodziło o to, że to zaprogramowania potrzebny jest jakiś zewn. kwarc. Mam natomiast roblem z działaniem układu. Ma sie on komunikować z komputerem za pośrednictwem RS232 - ale ciągle jest cisza. Jak sobie sprawdzam działanie programu w AVR studio to podczas inicjowania wszystkich rejestrów...
Poniżej wklejam kod najprostszego programu jaki można sobie wyobrazić do wysyłania czegokolwiek przez USART. Program ten jest wynikiem mojej desperacji. Od wielu wielu dni testuje programy swojego autorstwa i sciągnięte z neta gotowce (wg ich opisu i komentarzy działające bez zarzutu) i nie mogę uzyskać jakiejkolwiek komunikacji przez USART. Potrzebuję...
Zmniejszyłem ilość błędów i nie wiem co zrobić z resztą: http://screenshooter.net/6254402/biyuder chodzi tu napewno o odwołanie do [syntax=text]static void USART_Init( unsigned int baud ) { /* Set baud rate */ UBRRH = (unsigned char)(baud>>8); UBRRL = (unsigned char)baud; /* Enable Receiver and Transmitter */ UCSRB = (1<<RXEN)|(1<<TXEN);...
Stworzyłąem sobie urządznie które ma gadać z Pecetem za pośrednictewem RS 232. Napisałem prosty program, zaprogramowałem procka, ale cały czas jest cisza. Sparwdzałem połączenia, poziomy napięć na max 232 - wszytsko się zgadza. Wszystko wskazuje że musi byc coś nie tak z kodem programu. Jest jedna rzecz , która nie daje mi spokoju. Otóż jak symuluje...
Witam Zaczelem sie bawic transmisja szeregowa miedzy atmega a komptuerem. Mam taki problem, ze jak pisze w asemblerze to wszystko dziala, a jak ten kod przerobie na C to wychodza jakies krzaki, czy ktos moze wie gdzie popelnilem blad program asm: .INCLUDE "m32def.inc" ldi r17, high ((16000000 / (9600 * 16)) - 1) ldi r16, low ((16000000 / (9600 * 16))...
w tej chwili to programuje troszke po omacku, na podstawie znalezionego w necie kodu. korzystam z ponizszego: #include <avr/io.h> #define CPU_Hz 8000000 // częstotliwość zegara w Hz #define OSC 8 // częstotliwość zegara w MHz #define BAUD 9600 // prędkość transmisji po RS232 #define MYUBRR CPU_Hz/8/BAUD-1 /// **** fukcje dla RS232 **** void UART_init(unsigned...
Witam wszystkich. Chciałem napisać program który odbierze znak po rs232 i go odeśle. Kod pochodzi z datasheeta atmegi16. Port w komputerze jest dobrze skonfigurowany. Do komunikacji używam terminala v1.8. Atmega niestety nie odpowiada. #include <avr/io.h> #define F_CPU 8000000L // zegar w Hz #define RS_BAUD 4800 #define RS_UBRR F_CPU / 16 / RS_BAUD...
Witam! próbuje przesłać dane z komputera, na atmege i wyświetlić je binarne na LCD. Problem tkwi w tym że wyświetlane dane nie zgadzają się z tym co wysłałem z PC. Używam Atmegi 16 na kwarcu 16 Mhz.Oto kody programów od strony PC i Atmegi: PC using ... namespace RS232 { public partial class Form1 : Form { public Form1() {...
Witam serdecznie, mam problem z połączeniem atmegi z pc za pośrednictwem przejściówki Prolific, podobno ma działać a nie działa. Czy może ktoś zweryfikować moją inicjację USART i funkcję ślącą? F_CPU to 8MHz prędkość ustawiona na 9600 bodów. W terminalu żadnego znaku, myślałem że pomyliłem TxD z RxD ale próbowałem zamiany i dalej nic masa wspólna z...
Witam, Od niedawna jestem szczesliwym posiadaczem zestawu ZL3AVR z Atmega32. Podczas proby uruchomienia komunikacji Atmega <=> PC (za posrednictwem adaptera Prolific Technology, Inc. PL2303 Serial Port). Udaje mi sie wysylac dane (otrzymuje w terminalu komunikat "Witam!"). Natomiast wogole nie dziala mi przerwanie USART_RXC_vect. Czestotliwosc...
Witajcie Mam problem. Zrobiłem układ który wysyła do wyświetlacza TFT dane za pomocą funkcji opisanej w datascheet Atmegi16. Działa super: void USART_Transmit( unsigned int data ) { while ( !( UCSRA & (1<<UDRE))); UCSRB &= ~(1<<TXB8); if ( data & 0x0100 ) UCSRB |= (1<<TXB8); UDR = data; } zrobiłem też odbiór i tu się zaczynają...
Napisałem najprostsze możliwe funkcje do komunikacji po RS232. void usart_init(void) { UCSRC = _BV(URSEL) | _BV(USBS) | _BV(UCSZ1) | _BV(UCSZ0); UBRRL = 51; UCSRB = _BV(RXEN) | _BV(TXEN); } void wyslij(char dana) { while(bit_is_clear(UCSRA, UDRE)); UDR = dana; } uint8_t odbierz(void) { while(bit_is_clear(UCSRA, RXC)); return UDR; } Niestety nie działa....
Witam, Na dwóch ATmegach chciałem zrobić komunikację za pomocą UARTu. Miałoby to działać na zasadzie: jeśli ATmega odbierze string (hasło) np.: "1234" to wykona jakieś zadanie Kod nadajnika działa prawidłowo, potrafię wysłać string (kod w załączniku) Mam problem z kodem odbiornika, kod działa tak że reaguje tylko na znak, nie potrafi odebrać stringa....
Skoro nikt mi nie potwierdził że schemat jest dobrze to ja sam potwierdzę (jest dobrze, przetestowałem na żywo). Atmega16, zewnętrzny rezonator kwarcowy 16MHz. Rzeczywiście max to 1Mbps. Teraz kolejne pytanie. Transmisja asynchroniczna działa bez problemu, natomiast jak chcę przesłać dane wykorzystując transmisje synchroniczną to odbierane są krzaki......
W/w procku rejestry UCSRC i UBRRH współdzielą adres, rozróżnia się je poprzez najstarszy bit URSEL. Jak konfiguruje Uart'a: UCSR0A=0x00; UCSR0B=0x10; UCSR0C=0xA6; UBRR0H=0x00; UBRR0L=0x47; a potem symuluje w AVR Studio to on zamiast wpisywać do jednego danego rejestru wpisuje naraz do dwóch, zamiana miejscami wpisywania do rejestrów nie wnosi żadnych...
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, w momencie gdy chcę wysłać gotowe dane do płytki...
Witam. Mam problem z komunikacją pomiędzy PC i Atmega32. Kupiłem moduł FTDI FT232RL. Wygląda on dokładnie tak: http://obrazki.elektroda.pl/7068005800_1... Napisałem taki program dla Atmegi32 [syntax=c] #define F_CPU 8000000UL #include <avr/io.h> #include <stdio.h> #include <util/delay.h> #include <string.h> #include...
witam, napisałem taki oto program, który ma za zadanie zaznajomienie mnie z usartem i późniejsze wykorzystanie. Większość skopiowałem z noty, kompilator nie wykrywa błędów, program sprawdzał mi też kolega który jest lepszy w programowaniu ode mnie. Problem polega na tym, że atmega nie wysyła danych (tego 0) ani nic innego. Czy kod jest na pewno całkowicie...
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, ustawia cały port C w stan aktywny bądź niski. Mikrokontroler:...
Witam. Mam podobny problem i nie moge sobie z nim poradzic. Atmega ma wysylac dane jezeli dwa odpowiednie piny zostana zwarte do masy. Transmisja odbywa sie ale na terminalu odbieram rozne dziwne znaczki i nie mam pojecia o co chodzi. Do atmegi nie mam podpietego zadnego kwarcu. Oto moj program #include <avr/io.h> #include <util/delay.h>...
Witam, Chciałbym zwrócić się do was z problemem, z którym walczę już od jakiegoś czasu. Zaprojektowałem sterownik do wytrawiarki, w którym między innymi znajduje się ATMega32 i czujnik temperatury LM32. Gdy zacząłem pisać program i uruchomiłem ADC okazało się że wynik bardzo mocno skacze. Pomyślałem że źle zaprojektowałem płytkę i podłączyłem owy czujnik...
Coś nie działa mi uart czy wiecie w czym leży problem Dodano po 1 A jak wysyłam A to jakiś dziwny znaki się pojawią zamiast A
Witam Sprobuje po krotce opisac moj problem z Atmega32: Mam uklad z Atmega32 i max232 podlaczonymi do komputera za pomoca RS232, schemat w zalaczniku (con5 sie nie przejmujcie, na roznych schemtach raz VC+ bylo podpiete do masy a raz do VCC wiec dalem zworke). Chcialem z atmegi wyslac do PC-eta jakies dane. 1. Pisze prosty programik, atmega pracuje...
Mam problem z tranmisja AVR->PC. Uzywam ATmega32-16PU(at)10MHz, zew. krysztal. Fusy ustawione highbyte 0xC9, lowbyte 0xFF. Zasilanie 5V, kowerter poziomow to MAX232N, piny podpiete tak ATMEGA MAX232 input MAX232output PC RS TXD T2IN T2OUT RX ( pin 2) RXD R2OUT R2IN TX (pin3) GND (pin5) Kod programu testowego: #define BAUDRATE 64 // 9600 at 10MHz...
Mam następujący problem: Zadaniem docelowym jest wysyłanie wiadomości sms przez podłączony do ATmega32 terminal GSM przez RS-232. Problem polega na tym, że modem nie odpowiada na komendy AT wysyłane z ATmegi. PARAMETRY UKłADU: - Terminal Siemens MC55: - Atmega32, zewnętrzny kwarc 8MHz. Komunikacja Terminal GSM -> PC działają poprawnie. Wysyłająć...
Witam. Próbuję opanować USART w ATMega 8. Wewnętrzny oscylator 1MHz. Z komunikacją nie mam większych problemów. Jednak zastanawia mnie ustawianie prędkości transmisji. W moim programie ustawiłem prędkość transmisji na 9600bps. Rozumiem że 9600 bps oznacza wysłanie 9600 bitów w ciągu sekundy (jeżeli źle rozumuję to proszę o poprawienie mnie), a więc...
Witam. Mam kod, w którym Atmega ma wysłać na kompa dane dopiero wtedy jak komp wyśle ramkę 0b01111111. Zatrzymanie wystąpi po wysłaniu z kompa 0b00000000 (stan początkowy Atmegi, nic nie wysyła). Komenda 0b1xxxxxxx oznacza odczyt konkretnego urządzenia. Każda przesłana komenda ustawia odpowiednią flagę, która sygnalizuje działanie. Odbiór z kompa (Rx)...
Witam. Mam pewien problem z odczytem ramki z czytnika RFID. Moduł (z allegro) komunikuje się z atmegą przy pomocy UART-a. Atmega działa na wewnętrznym oscylatorze 1MHz, parametry transmisji: 19200 bps, bez parzystości, 8 bitów danych, 1 bit stopu. Jakąś tam ramkę udało mi się odebrać, tzn. 4 bajty z czego tylko 3 pierwsze są poprawne. Poprawna ramka...
Witam. Chciałem sobie wgrać bootloader z tematu do ATMEGA324P i mam problem. Zmieniłem dane na: // Parametry do modyfikacji przez użytkownika: .INCLUDE "m324Pdef.inc" ; SEGMENT DEKLARACJI .EQU OSC_FREQ= 16000000; częstotliwość pracy w Hz .EQU RS_BAUD= 115200 ; prędkość transmisji dla RS-232 [bps] .EQU TYP = 24 ; typ procesora /*...
Poprawiłem tytuł na bardziej zgodny z regulaminem p. 3.1.15. LordBlick Mam problem z ustawianiem czasu i daty na mojej płytce testowej na której umieściłem układ zegara DS1307 na Atmega 16. Nie wiem jak to zrobić w c.proszę o pomoc i przykłady dołączone do działającego programu zegara ale wyświetlającego mi po wgraniu wcześniej zdefiniowany czas i...
Podmieniłem i wciąż nie działa. Dodam, że działam na 3.6V jesli to ma znaczenie. Układ bluetooth to HC-06. obecnie kod: [syntax=c] /* */ #include <avr/io.h> // Załaduj bibliotekę input/output #include <util/delay.h> // Załaduj bibliotekę opóźnień #include <avr/interrupt.h> // Załaduj bibliotekę obsługi przerwań #include "ioinit.h"...
Witam, postanowiłem do Atmega 16A podłączyć po module USART następujący moduł: http://electropark.pl/moduly-komunikacji... . Po podłączeniu VCC do 3,3 V oraz GND do masy zapaliła się migająca czerwona diodka, natomiast po skomunikowaniu ze smartfonem czerwona dioda przestała migać tylko cały czas się palić....
W nocie katalogowej Atmega162 jest kod [syntax=c]void USART_Init( unsigned int baud ) { /* Set baud rate */ UBRRH = (unsigned char)(baud>>8); UBRRL = (unsigned char)baud; /* Enable receiver and transmitter */ UCSRB = (1<<RXEN)|(1<<TXEN); /* Set frame format: 8data, 2stop bit */ UCSRC = (1<<URSEL)|(1<<USBS)|(3<&...
Mam problem z wysyłaniem i odebraniem z rs485. Jest to ATMEGA 8 + max485. [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <HD44780.c> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include <avr/wdt.h> #include <stdio.h> #include <string.h> #include <stdlib.h>...
To z czym ja mam połączyć to Vref? bo już nie rozumiem Mam taktowanie 8mhz jak ustawić ten preskaler? Dodano po 2 Okej udało mi się to rozwiązać do końca. Dla potomnych działający program korzystający z AREF [syntax=c] #include <stdlib.h> #include <avr/io.h> #include <util/delay.h> //void setAngle(int angle); //void InitServ(void);...
Witam, mam mały problem. Napisałem program mający za zadanie wysyłać przez USART w pętli znak. Wgrałem program podłączyłem wszystko na płytce stykowej przez max232 z portem COM w komputerze, odpaliłem RealTerma. Jednak po włączeniu Atmegi zamiast oczekiwanego znaku zapełniającego konsolę w Realtermie ekran zapełnia się napisem (nul). I nie wiem czy...
Witam serdecznie. Piszę program, w którym muszę zliczać przychodzące impulsy z licznika energetycznego do procka. Aby nie zliczać impulsów pochodzących od drgań styków wymyśliłam takie rozwiązanie. Jeśli na INT0 przyjedzie zbocze opadające, włącz licznik T0. Gdy licznik przepełni się- minie 32ms i w tym miejscu będzie poziom niski na pinie, to atmega...
Witam. Napisałem sterownik do serwa modelarskiego na Atmega 8. Teraz próbuje skomunikować ten sterownik z druga Atmegą 8, aby przesyłać pozycje zerwa z drugiej Atmegi do sterownika. Jednak napotkałem pewne kłopoty. Oto program do drugiej Atmegi: #include<avr/io.h> #include<util/delay.h> #include<uart.c> unsigned char dana=100; int...
Witam, Mam problem z ustawieniem flagi podczas zakończenia odbierania ciągu znaku. Program pisany pod atmege 8. UART inicjalizuje w następujący sposób: [syntax=c] #define UART_BAUD 9600 #define __UBRR ((F_CPU+UART_BAUD*8UL) / (16UL*UART_BAUD)-1) void USART_init(uint16_t x){ UBRRH = (uint8_t)(x>>8); UBRRL = (uint8_t)x; UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<&...
Witam, próbuję napisać program do odbierania danych z modułu Bluetooth HC-06. Kod, który znalazłem i zmodyfikowałem działa, lecz jest napisany w języku, który jest dla mnie trudniejszy. Chciałbym zapytać czy ktoś ma może odpowiednik poniższego programu w języku Arduino? Aktualnie potrzebuję stworzyć Timer, który po otrzymaniu danych z Bluetooha ustawi...
1. Powinieneś się zdecydować, albo obsługujesz odbiór w przerwaniu, albo w procedurze rec() . Obie metody na raz powodują, że procesor będzie wisiał cały czas w procedurze rec() ( RXC będzie zawsze wyzerowane po wyjściu z przerwania), 2. Następna sprawa - nie używa się już #include <avr/signal.h> , tym bardziej jednocześnie z #include <avr/interrupt.h>...
Mam problem z ukladem PL-2303 firmy prolific. Pochodzi ze starego kabla do telefonu nokia z USB po stronie PC oraz rs po stronie wyjscia ( 3 kabelki, GND,rx,tx). Testowalem go robiac null - modem, przy uzyciu programu COM Terminal .NET na windows vista ( vista wgrala drivery z netu dla tego ukladu ). Dzialalo swietnie! Dostawalem echo. Układ emulował...
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 to wyświetlenie na kolorowym wyświetlaczu pixeli...
Już wszystko mi działa, dziękuje za pomoc, faktycznie problem tkwił w fusebitach, mam tam ustawiony zegar 8 MHz i tak już sobie zostawiłam. No i jeszcze był włączony Watchdog, dlatego procesor tak szybko wysyłał te "FF". teraz mój program wygląda tak: (wklejam gdyby ktoś miał taki kłopot jak ja) działa komunikacja w obie strony, a mój procesor to Atmega...
Witam wszystkich. Mam taki problem na którym stoję już kilka dni. Mianowicie tak: Posiadam przejściówkę USB-RS opartą o układ PL2303x przez którą to chcę się komunikować z ATmegą16. Przejściówka była dorzucona do zakupionej na wiadomym serwisie aukcyjnym płytki testowej do mikroprocesora. Po podłączeniu przejściówki do portu usb w PC generalnie wszystko...
Witam. Próbuję zrobić prostą transmisję Atmega do PC korzystając z układu FT232. Niestety nie chce mi się nic wyświetlić na terminalu. Mam zainstalowane sterowniki D2XX i VCP, terminal widzi magistralę FTDIBUS, zwarłem również nóżki tuż przy uk TXD i RXD, i wysłałem coś i to wróciło do terminala. Nie mam pojęcia co źle robię. Używam terminala byBr(at)y...
Potrzebuję stworzyć wydajny protokół do komunikacji Atmegi 8 z PC oraz w drugą stronę po RS232. Wiem jak wysyłać pojedyncze bajty. Napisałem też pewien prosty protokół, poniżej kluczowe funkcje (send_packet, receive_packet) [syntax=c] #define F_CPU 7372800UL #define RS232_BAUD 57600ul char buffer[255]; //wysyłanie całego pakietu void send_packet(char...
Tak jak w temacie, albo lecą"spacje" albo nic... A teraz hardware: Mega16a zasilana 3,3v a taktowana kwarcem 12 MHz + chiński CA-42 (na pl203). Jak zewrę tx z rx kabla to echo jest. Software jakis z elki : http://obrazki.elektroda.pl/6667936400_1... Walczę juz 2 dzień i wymiękam...
Konfiguracja UARTa: [syntax=c] #define UART_BAUD 76800 //9600 // tu definiujemy interesującą nas prędkość #define __UBRR F_CPU/16/UART_BAUD-1 // obliczamy UBRR dla U2X=0 void USART_Init( uint16_t baud ) { /* Ustawienie prędkości */ UBRRH = (uint8_t)(baud>>8); UBRRL = (uint8_t)baud; /* Załączenie nadajnika I odbiornika */ UCSRB = (1<<RXEN)|(1<<TXEN)|(1<&l...
Aha. rozumiem. Może ja wkleję kody programów dla lepszego zrozumienia całości problemu. Dodano po 2 Program do pierwszej atmegi, wysyłającej sekwencje 4 danych co 20 ms #include<avr/io.h> #include<util/delay.h> #include<uart.c> #include<HD44780.c> #include<stdlib.h> unsigned char dana[4]; int i=0; void Dana_Init()...
Dzień dobry:) Mam kolejny problem. Atmega nie może odczytać tego co wysyłam z komputera. Do komputera elegancko wszystko dochodzi ale w drugą stronę już to się nie udaje. Posiadam http://obrazki.elektroda.pl/5367414100_1... (T1OUT to TX a R1IN to RX w ft232) Płytka testowa: http://obrazki.elektroda.pl/7785833400_1...
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 ClrBit(x,y) x &= ~(1<<y) #define NegBit(x,y)...
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...
Witam, Mam problem z A\C, jest zbyt czuły, program testuje na płytce uniwersalnej ZL2AVR. Port A\C to PC5, port diody PB0, Atmega taktowana wewnętrznym 8Mhz. Gdy goldpin PC5 jest odpięty to program działa poprawnie, jednak gdy podepne lużny kabel i zbliżę do niego ręke na ok 10cm to program to wykrywa. ISP ze wzglądu na wspólną linie PC5 jest odpinany...
Problem już prawie rozwiązany, gdyż moja lista z projektami świeciła się jak choinka za sprawą tych samych, złych bibliotek. Poprawiłem już prawie wszystko, ale chce się upewnić co do jednego. Czy w kodzie który zamieszczam wystarczy usunąć "||" czy coś tam powinno być? W pliku źródłowym na jakiejś stronie internetowej też tego nie ma, więc nie usunąłem...
Witam! Od wczoraj męczę się z przesłaniem czegokolwiek z uC ATmega 8 do mojego PC poprzez USART. Przejściówka jaką posiadam jest oparta na pl2303 i jak wynika z noty to pracuje na poziomie napiec TTL. Schematu nie mam ale podłączone jest na 100% dobrze. Masy są połączone:) Problem jest taki, że mój PC odbiera całkowicie inne dane niż wyślę uC. Na początku...
Szukałem na internecie poradników do terminala UART i udało mi się zrobić coś takiego z kawałków znalezionych w sieci. Problem polega na tym, że mój kompilator wyrzuca błędy a nie pokazuje mi gdzie one są (i tym samym nie mogę ich skompilować) i jeśli ktoś może sprawdzić poprawność kodu w 1. i 2. main.c(są to dwa odzielne programy w dwóch projektach...
Witam. Mam problem z transmisją do kompa. Przeglądałem forum ale nie moge znaleść odpowiedzi na moje pytanie. Atmega ma wysyłać po rs do kompa znaki ale nic w teminalu sie nie pojawia. Mam ustawioną predkość transmisji na 19200. Kwarc 12MHz. kod wygląda tak: #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include...
Witam, zmontowałem sobie prosty układ do komunikacji z PC. Komunikacja następuje przez przejściówkę USB <>UART opartą o FT232R. Wszystko pięknie działa do momentu, kiedy zmieniam baud rate na <190 - mikrokontroler sygnalizuje, że taki baud rate jest możliwy do ustawienia, natomiast po zmianie w Real term komunikacja nie następuje. Poniżej wklejam...
Witam. Chciałbym przerobić wagę łazienkową w taki sposób aby wynik był odczytywany przez atmegę. Jako wzmacniacza użyłem układu INA125 Czy jeżeli układ INA 125 zasilam napięciem 5V to napięcie referencyjne 5 volt nie osiągnie tego poziomu i będzie wynosić 4,48 V z uwagi na zbyt niskie napięcie zasilania? Cały mój problem jest taki że mostem bez obciążenia...
Czesć czy wiecie może czemu mi ten kod niedziała prosze o pomoc w znalezieniu błędu [syntax=objc] #include<avr/io.h> #include<util/delay.h> //Deklaracje funkcji void send_start(void); void send_stop(void); void send_byte(uint8_t byte); uint8_t read_byte(uint8_t byte); void send_buffer(uint8_t Slave_Address,uint8_t address,uint8_t *buffer,uint8_t...
A co robię niezgodnie z dokumentacją? Poniższe funkcje znalazłem na stronie internetowej, która wyglądała całkiem poważnie. Obojętne mi z której flagi będę korzystał byle działało :P A skoro w większości przykładów natknąłem się właśnie na wykorzystanie tych flag to tego się na razie trzymam. ----------------------------------------... W sumie to...
Witam !! Napisałem sobie ostatnio prosty program do wysyłania danych na terminal po RSie : #include <avr/io.h> #define F_CPU 8000000UL // 8MHz wewnetrzny #define BAUD 19200UL // predkosc transmisji #define MYUBRR ((F_CPU/(16*BAUD))-1... void UART_init(unsigned int ubrr) // inicjalizacja { UBRRH = (unsigned...
Witam Próbuję zmusić swojego Atmege8 do gadania z btm-222 i mam mały problem. Dopiero zaczynam zabawę z elektroniką, procesorami i ich programowaniem, na co dzień zajmuję się zupełnie czymś innym więc proszę o wyrozumiałość :) Więc od początku. Mam program do wysyłania i odbierania danych po USART napisany w C (wzorowałem się na innych programach zamieszczonych...
Robak użyłem Twoich funkci ale dalej nie działa.Prosze Cie jeszcze o podpowiedz co jeszcze jest źle. Z góry dziękuje #include <avr/io.h> // dostęp do rejestrów #include<avr/interrupt.h> #define F_CPU 8000000ul // częstotliwość zegara w Hz #include<util/delay.h> #define cbi(sfr, b) (sfr &= ~(1<<b))...
Witajcie, w jaki sposób można optymalnie odczytać przesłany (aż do znaku nowej linii / powrotu karetki) ciąg znaków od przerwania otrzymania danych? /* * Sterowanie przez RS232 (main.c) */ #include "defines.h" #include <ctype.h> #include <stdint.h> #include <stdlib.h> #include <stdio.h> #include <avr/interrupt.h>...
Patrzę na kod od godziny, nie mogąc znaleźć przyczyny problemu. Pewnie winny jest jakiś drobiazg, którego nie jestem w stanie dostrzec. Zapewne ktoś z większym doświadczeniem wychwyci go natychmiast. Na początek trochę o projekcie . Jest to moje pierwsze "większe" przedsięwzięcie w ramach nauki programowania AVR-ów w języku C. Krótko mówiąc jakiś czas...
Witam. Mam taki problem, że gdy wysyłam z procka na hyperterminal to wszystko przebiega bez problemowo. Za to gdy chce coś otrzymywać np. pisząc na komputerze chce widzieć tekst na LCD podpjętego do uP, ewentualnie poprostu coś przesłać na mikrokontroler to wtedy hyperterminal nie pozwala mi wprowadzić ani jednego znaku jak by nie było połączenia. Procek...
Witam, Próbuję korzystać z biblioteki Peter Fleury do obsługi usart-u, której listing znajduje się poniżej: PLIK uart.c /***************************************... Title: Interrupt UART library with receive/transmit circular buffers Author: Peter Fleury <pfleury(at)gmx.ch> http://jump.to/fleury File:...
Prosze o pomoc Jak zmienić ten kod programu by po naciśnięciu konkretnego klawisza klawiatury np. klawisz 'a' ma zaświecić diodę, klawisz 'b' ma zgasić diode. Po naciśnięciu innych klawiszy dioda ma niereagować #include <avr/io.h> // dostęp do rejestrów // Zmieniając poniższe definicje można dostosować program do potrzeb #define F_CPU 16000000ul...
Witam, mam problem z kodem ( no właśnie, to sie okaże :) ): #define F_CPU 16000000UL #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/pgmspace.h> #define UART_BAUD 115200 //prędkość transmisji #define UART_CONST (F_CPU/((16*UART_BAUD)-1...
Mam sobie taką o to tablicę w epromie: P.S. Wiem, że pisze się uŻytkownik, ale chcę wiedzieć czy prowadzący przeglądają kody programów w raporcie:P
Już za kilka dni muszę oddać moją pracę dyplomową. Moim problemem jest zbyt duży rozmiar kodu i jeśli nie zoptymalizuje programu to nie umieszczę w nim wszystkich założonych funkcji. Czy ktoś ma pomysł jak zaoszczędzić trochę pamięci patrząc na mój kod? (na program skłąda się jeszcze biblioteka do obsługi wyświetlacza z Nokii) #define _MAIN_MOD_ 1 #define...
Wrzucam moją wersję programu do obsługi 4 serw. W ostatnim tygodniu zakupiłem swoje pierwsze dwa serwa, więc mogłem się pobawić problemem ich sterowania. Z powodu, że mam tylko dwa, jedynie dwa kanały są sterowane z przetworników ADC. Pozostałe są obsługiwane przez przerwania, ale nie ustawiane. Wartości dla serw wpisuje się w tablicy serwa_val[]. Doświadczalnie...
0xFF, to brak transmisji, ale 0xC0 świadczy o pewnym przesyle. Było by miło, gdybyś podłączył oscyloskop, bo mogli byśmy wyeliminować błędy transmisji. Połącz RxD z TxD mikrokontrolera i zobacz czy odbierasz to co wysłałeś.
Nie wiem dlaczego czytasz informacje "z drugiej" ręki, zamiast skupić się na dokumentacji ? Mam tu na myśli książki i jakieś poradniki. Wszystko jest tam idealnie opisane. Nie sprawdzałem tego kodu. Jeżeli nie chcesz przerwań i wystarczy Ci tzw. "polling", to jeszcze prościej. Zakładam zegar na 16 MHz. Inicjalizacja USART0 dla 9600 b/s, 8N1, jako interfejs...
Mam maly problem z komunikacja miedzy at902313 z atmega8. Prubuje wyslac z 2313 dane z predkoscia 1800 do atmegi i nic. Pisze w asm-ie i mam takze problem z dwoma rejestrami w atmega UBBRH i UCSRC. Majat en sam adres i jeden bit ktory decuduje o dostepie do tych rejestrow. W emulatorze nie moge sie osobno dostac do rejestrow. Z gury dziekuje za ewentualn...
Jeśli zapisujesz coś do UCSRC to zawsze bit URSEL musi być ustawiony. Poza tym niepotrzebnie obciążasz procesor obliczaniem zawartości rejestrów UBRRH i UBRRL. Jeśli zapisujesz coś do rejestru to zapisz to jednym rzutem, a nie rozbijasz to na naście linijek. Zapisy typu "UCSRC |= (0<<USBS);" nie mają sensu. Taka operacja nic nie zmienia: 0|0=0...
Oto jeden z kodów który wymodziliśmy: program testing; var received_byte : byte; channel : byte; procedure Recived; org URXCaddr; //Procedura obsługująca odbieranie bajtu begin inc (channel); if UCSRB.FE = 1 then channel := 0; received_byte := UDR; if channel = 2 then PORTA := not received_byte; end; begin UBRRH := $00;...
Build started 6.4.2014 at 00:25:04 avr-gcc -mmcu=atmega16 -Wall -gdwarf-2 -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT Proba_10.o -MF dep/Proba_10.o.d -c ../Proba_10.c avr-gcc -mmcu=atmega16 -Wl,-Map=Proba_10.map Proba_10.o -o Proba_10.elf avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature...
tutaj masz dobry kod na atmege8: (atmega48, 88, 168 troche sie różni rejestrami i są bardziej kłopotliwe ale to tylko kwestia podmiany nazw): Odbieranie koniecznie w przerwaniu!! jak dla mnie tylko taki sposób ma prawo bytu :) SIGNAL (SIG_UART_RECV) { odebranyZnak = UDR; .... <--- tu robisz sobie z tym znakiem co chcesz } Funkcje...
A skąd to wiesz ? A pdf-a od mikrokontrolera na oczy widział ? zajrzyj do części opisującej odczyt z UCSRC
Jest w Arduino IDE ... oryginalnie w IDE nie ma wsparcia dla Atemeg 16/32, trzeba szukać i dograć odpowiednie pliki z zewnątrz. A te, które są w internecie mają błędy. Trzeba poprawiać. W załączniku bootloader taki właśnie. U mnie działa na IDE 1.5.8 Instalacja dodatku: - plik ...\hardware\arduino\avr\boards.txt zastapić nowym z załącznika - utworzyć...
Programowo nie da się jej zmienić....... Weź chłopie daj wszystko jak było, tylko BAUD daj 4800 i sprawdź, czy przy takiej prędkości działa #define F_CPU 1000000ul #include <avr/io.h> #include <util/delay.h> #include <avr/signal.h> #define FOSC 1000000 #define CZYT 50 #define BAUD 4800 #define MYUBRR FOSC/16/BAUD-1 void USART_Init(...
Witam wszystkich. Podczas dzisiejszej zabawy z Atmegą32a napotkałem 2 problemy. Jeden, to dziwnie działający UART: Przy takim kodzie: [syntax=c]#include <avr/io.h> #include <util/delay.h> #define PWM_A (1<<PD4) #define PWM_B (1<<PD5) int a = 0; #define USART_BAUDRATE 9600 #define BAUD_PRESCALE (((8000000UL / (USART_BAUDRATE *...
Czyli co, musze zmienić adres w <io/avr.h>? Nie. Tak ma być. Patrz datasheet. Masz błąd w UCSRC |= (1<<URSEL)|(1<<U... Co tam robi 3? powinno być: UCSRC |= (1<<URSEL)|(1<<U... Albo zapisz od razu cały bajt. W twoim przypadku będzie: UCSRC...
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 zostają poprawnie odebrane, to atmega8 odsyła mi 11...
a co na to symulator?
//konfiguracja portu szeregowego UBRRH = (unsigned char)(UART_CONST>>8); UBRRL = (unsigned char)UART_CONST; UCSRB = (1<<RXEN)|(1<<TXEN)|(1<&l... //wlaczony nadajnik, odbiornik, przerwanie od odbioru void USART_Init( unsigned int baud ) { /* Set baud rate */ UBRRH = (unsigned char)(baud>>8);...
ucsrc ubrrh bascom ucsrc atmega atmega rs232
ducato kopci czarno operator simlock termostat weller
Kompresor nie włącza się: diagnostyka i naprawa Wiertarka stołowa kolumnowa Bass Polska 600W 400V – opinie, moc, precyzja, zastosowanie