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...
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
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...
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. 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:...
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...
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...
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....
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 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....
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...
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ą...
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...
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>...
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, 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, 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...
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...
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. 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)...
Pokaż program po zmianach. [syntax=c] /* BAUD RATE: 9600 */ #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" // Załaduj bilbiotekę zew. (do ustawienia portów ATMega 8) #include "uart.h"...
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...
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...
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<&...
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 /*...
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 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...
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ę...
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 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, 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. 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>...
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))...
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...
ucsrc ubrrh bascom ucsrc atmega atmega rs232
kanały satelitarne astra odkurzacz dyson problemy master kompresyjne
Zanika dźwięk w jednym kanale – czyszczenie i wymiana potencjometru, objawy w sprzęcie audio Latarka Vectra – wymiana baterii AA, AAA, 18650, SLA – instrukcja krok po kroku