Witam forumowiczów, Sytuacja wygląda tak, że z jednostki nadrzędnej słane są ramki danych, Po każdej ramce jest szczelina czasowa tak aby nasza ATmega zdążyła odpowiedzieć, Mamy Atmega16 kwarc 16MHz i transmisje 57600 (w przybliżeniu), Gadamy przez RS485 tak, że między ramkami jeszcze przełączam linie bufora, Steruje równocześnie buforem wejścia i wyjścia...
A gdzie konfiguracja DDR dla portu B?
temp powinno być volatile. Inaczej się optymalizuje w pętli głównej, spójrz na wygenerowany kod asemblerowy. Dodano po 1 Zarówno "temp" jak i "i" powinny być volatile. i nie musi. Jest wykorzystywane tylko w przerwaniu. Za to powinno być zadeklarowane jako static w funkcji obsługi przerwania. Dzięki za szybką odpowiedź, ale to chyba nie jest problemem......
Ok, uporałem się jakoś z tym projektem, tak że wreszcie działa. W końcu użyłem tego gotowego przykładu: http://mikrokontrolery.blogspot.com/2011... i jakoś "ręcznie" dodałem biblioteki ASF od TWI. Było kilka niezgodności, ale się z tym uporałem. Tak więc program działa i wymienia dane z kompem. Mam...
Męczę się nad tym od jakiegoś czasu i nie mogę sobie z tym poradzić. Próbuję połączyć ze sobą te dwa kontrolery. Zacząłem od skonfigurowania Atmegi16 do odbioru i połączenia jej z HyperTerminal. Najgorsze jest to że jakiś rok temu zrobiłem to bez problemu a dziś za żadne skarby mi nie wychodzi. Programik raczej prosty: #include<avr/io.h> #include<avr/interrupt.h>...
Mam problem otóż wpisując w hyper terminalu 'n' procek tego nie wykrywa zapaleniem diody na porcie D7 połączenie jest bo jeśli zrobie tak: SIGNAL(SIG_UART_RECV) { sbi(PORTD,7); } to dioda zapala się. kwarc jest 16MHz czyli UBRR = 25(UBRRH =0x00, UBRRL =0x19) dla 38,4Kbaud #include <avr\io.h> #include <avr\interrupt.h> #include <avr\signal.h>...
Witam. Od dłuższego czasu siedzę nad komunikacją USART synchroniczną pomiędzy ATmega16 i AT90CAN128 i nie potrafię dojść dlaczego nie działa. ATmega16 taktowany jest zewnętrznym kwarcem 3,686400 MHz, a AT90 z wewnętrznego oscylatora RC 8MHz. Docelowo będzie taktowany z pinu OC1A w atmedze, dlatego zdecydowałem się na transmisję synchroniczną. Atmega...
Witam. Mam mały problemik z UARTem . Mianowicie wszystko dziala ladnie , wysylanie i odbieranie znakow. Problem powstaje w momencie gdy wlacze przerwanie od zakonczenia nadawania (TXC: USART Transmit Complete ). Wowczas po wyslaniu jakiegokolwiek znaku z mikroprocesora mikroprocesor sie restartuje. Uklad to ATmega16, kwarc 16Mhz, predkosc transmisji...
Biblioteki z Internetu - hmm, mam swoje zdanie na ten temat, nie podzielę się nim, bo moderator by musiał ten post wrzucic do kosza, a i ostrzeżenie zapewne bym dostał :) Zacznijmy od hallotronu - podepnij go pod pin, który generuje przerwanie i ustaw przerwanie z pinu na zbocze. W przerwaniu sobie zliczaj impulsy z hallotronu. Dodaj na wejście jakiś...
Wg noty procesora zrobilem ponizszy kod do komunikacji: #define FOSC 12000000 #define BAUD 19200 #define MYUBRR (FOSC/16*BAUD)-1 unsigned long int licznik=0, licz=0, stan_licz=0; unsigned short int sekunda=0; unsigned char tekst[16], buf_zlicz[2], zliczanie=0;//, temp=0; void USART_Init( unsigned int ubrr ) { /*...
Przerwania co 4ms nie powinny mieć wpływu na ICP, na OW też nie, bo sekcje krytyczne czasowo zamykasz w bloki atomowe (cli/sei). Jedyne co się może stać to nieznaczne opóźnienie reakcji na przerwanie spowodowane jego blokowaniem. Jeśli jednak przerabiasz płytkę to pomyśl o tym wykorzystaniu USART.
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 i dane - 8 bitów. Przy odczycie analogicznie rozkaz,...
Ponizej przedstawiam swoj kod: #include <avr/io.h> #define F_CPU 16000000UL #include <util/delay.h> #include <avr/interrupt.h> //#include <avr/iom16.h> #include "lcd.h" #include "usart.h" #define Timer2_start TCNT2 = 0x63; TCCR2 = 0x07; //0x63 - poczatkowa 99, preskaler 1024 0x07 #define Timer2_stop TCCR2...
O, i taka krytyka jest mi wlasnie potrzebna ;) Dzieki za uwagi :) Manuala sobie postudiuje ale najpierw musze sobie znalezc w pdf-ie zeby moc wydrukowac bo z html-a nie bardzo sie chce czlowiekowi uczyc. Co do typow - rzeczywiscie - nie pomyslalem o tym :) I nie sadzilem, ze jest inna funkcja zmieniajaca osobno inne typy int :) Co do odmierzania czasu...
zmień funkcję w przerwaniu: ISR(USARTUDRE_vect), postaraj się wmontować tam while, coś na kształt: Bzdura. Skoro występuje to przerwanie, to tylko wtedy gdy ten bit jest ustawiony. Odsyłam do noty katalogowej. No właśnie takiego czekania w pętli chciałem uniknąć. Tą funkcję spełnia przerwanie: Zła nazwa przerwania, powinno być USART_UDRE_vect: http://www.nongnu.org/avr-libc/user-manu...
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ą...
tak robiłem go ręcznie. wpisałem atmega16a bo taki mam procesor. Skompilowałem bez literki a i przerwanie działa. :) Wielkie dzięki za pomoc, pewnie długo bym nie pomyślał, że problem może być w makefile. Tak przy okazji może jeszcze coś się dowiem: Czemu nie powinno być dokładnego modelu procka z literką a i dlaczego wszystko inne mi działało przy...
Witam, w poniższym programie występują niepożądane resety, sprawdzałem już wartość rejestru MCUCSR i tuż po resecie ma wartość 0 czyli jest to reset programowy. zorientowałem się, że źródłem jest wywołanie instrukcji odpowiadającej za przerwanie komparatora analogowego (w oknie disassembly adres 0x00000020), które jest wyłączone... nie wiem co powoduje...
Witam Zastanawiam się dlaczego program "nie wchodzi" do przerwania po wysłaniu bajtu po rs232. Kod przerwania: [syntax=c] ISR(USART_TXC_vect){ PORT_LED = 255; while(1); } [/syntax] Funkcja inicjująca UART: [syntax=c] void InitUART(int baudrate) { // Enable 2x speed UCSRA = (1<<U2X); // Set baudrate UBRRH = (unsigned char) (baudrate>>8);...
Witam, próbowałem ostatnio przenieść mój program (wyłącznik czasowy) z Atmegi8 (działa idealnie) na Atmegę16 (gdyż ma więcej "nóżek"). Problem pojawił się przy pierwszym uruchomieniu - w miejscu, w którym uruchomione zostają przerwania program się resetuje. Zaznaczam od razu iż spędziłem wiele godzin szukając odpowiedzi w internecie, znalazłem nawet...
Sami zobaczcie: http://youtu.be/muACJfkTm4c Oto prosty kod jaki napisałem: Czy ktoś wie o co chodzi? :D
Mojej walki ciąg dalszy, pamiętam o poprzednich tematach, uczę się i kiedyś do nich wrócę :) . Otóż podłączyłem czujnik wstrząsów do PD3 i chciałem wykrywać wstrząsy przerwaniem. A propos, okazało się że samochodowy 12v świetnie chodzi na 5v, diodki mrugają więc wiem że wstrząsy wykrywa. Wstrząs sygnalizowany jest zwarciem sygnału do masy - i zmierzone...
Napisałem najprostszy program do obsługi zewnętrznych przerwań, niestety nie działa. [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> int main(void) { DDRB=0x01; //wyjście dla diody //MCUCR|=(1<<ISC01)|(1<<ISC0... //zbocze narastające GICR|=(1<<INT0); sei(); while(1) { PORTB |= 0x01;...
Witam. Mam mikrokontroler atmega16 i używam kompilatora AVRSide. Chcę przesłać dane do komputera z pośrednictwem USARTU i ustawiam nadajnik oraz odbiornik w ten sposób: void USART_Init(unsigned char baud) { DDRD=0x02; UBRRH = 0; UBRRL = baud; UCSRB = _BV(RXEN) | _BV(RXEN) ; UCSRC = _BV(URSEL) | _BV(UCSZ0) | _BV(UCSZ1); } Problem w tym że bity URSEL,...
Witam mam bardzo nietypowy jak dla mnie problem z układem który ostatnio wykonałem. Mianowicie jest to centralka alarmowa oparta o uC ATmega16. Działa na tej zasadzie że pod wejście PB2(INT2) podpięty jest kontrakton (zwiera do masy) do którego przykładam magnes i albo rozbrajam albo uzbrajam centralkę. Z grubsza to wygląda tak: PB2(INT2) skonfigurowane...
Witam, zwracam się z prośbą do doświadczonych kolegów z prośbą o naprowadzenie na rozwiązanie. Mam program bootloadera i program użytkownika. Bootloader jest na początku Flasha a użytkownika przesunięty o 32k. Mikrokontroler ATSAM7XC256, urginalne ustawienie flasha w programie urzytkownika: FLASH (rx) : ORIGIN = 0x00100000, LENGTH = 0x00040000 zmieniłem...
Witam wszystkich, Mój problem: Polutowałem cały układ i znalazłem jedno zwarcie. Okazało się, że jest to linia zasilania i cały układ został przeszukany w sprawie winowajcy. Okazało się, że zwarcie występuje na nóżce VCC ATmegi. Obecnie ścieżka dochodząca do VCC jest kompletnie odcięta od reszty układu a i tak występuje na niej zwarcie. Taka sytuacja...
witam. Mam taki problem ponieważ sygnał który dostaje z akcelerometru muszę scałkować podwójnie i do tego jest mi potrzebny przedział miedzy próbkami i mam problem z wyznaczeniem tego czasu. żeby mieć stałe odstępy próbkowania wymyśliłem żeby próbkowanie odbywało się w przerwaniu i teraz problem polega na tym ze w trakcie wykonywania przerwania od timera2...
Witam. Próbuję zrobić zwykłe zliczanie osób w pomieszczeniu. Mam dwie bariery świetlne, które są podłączone do pinów PD2 i PD3 czyli INT0 i INT1. Problem w tym, że przerwanie od INT1 nie chce mi zaskoczyć, natomiast INT0 działa. Dodam, że bariera działa dobrze: przerwanie bariery skutkuje podciągnięciem Portów PD2 czy PD3 do 0. Czyli przerwanie powinno...
witam. od kilku dni probuje rozwiazac pewien problem. mianowicie ucze sie programowac avr'y i postanowilem zrobic budzik. jednak problem zaczal sie gdy zaczalem dzialac na przerwaniach. na wejscie int2 podany mam sygnal o czestotliwosci 1Hz. ma on co sekunde powodowac przerwanie w ktorym jest odczyt zegara oraz wyswietlenie go na wyswietlaczu 2x20 znakow....
Cześć Szukam pomocy po wyłączeniu JTAGa w ATmega16a. Próbowałem użyć pinów PC2 i PC3 w procesorze ATmega16a. Nie działały - stwierdziłem, że może to być związane z włączonym JTAG. Użyłem więc Burn-O-Mat i ustawiłem fuse bit JTAGEN na 1 (czyli go wyłączyłem). Od tego momentu procek jest martwy ;( Używam programatora USBASP. avrdude daje komunikat: avrdude.exe:...
Witam. Pisze program sterujący pracą silników krokowych. Pisałem cały czas tak program by mieć konktrolę nad prędkością każdego z silników osobno (chodzi o to że silniki mają różne przekładnie a chce by wszytskie elementy poruszały się z tą samą prędkością obrotową więc prędkość ustala się raz w programie i się jej później nie zmienia) Zastosowałem...
jeśli chodzi o przerwania korzystaj z SIGNAL a nie ISR (a dlaczego? to już sobie sam doczytaj) Wycinek z <avr/interrupt.h> z najnowszego AVR-GCC #if defined(__DOXYGEN__) /** \def SIGNAL(vector) \ingroup avr_interrupts \code #include <avr/interrupt.h> \endcode Introduces an interrupt handler function that runs with global...
Tak, jeśli używasz przerwania to nie potrzebujesz tej funkcji. Procesor wcale nie musi się resetować, może wpadać w nieokreśloną martwą pętlę po skoczeniu do przerwania od RX (które jest nieokreślone). Program działa więc tak: wykonuje wszystko aż do napotkania funkcji USART_ReceiveByte, wchodzi do niej i oczekuje na zakończenie odbioru bajtu przez...
Nie wiem jaki to uP ale np. dla ATmega16 wygląda to tak: Włączasz przerwanie: UCSRB|=(1<<TXCIE); sei(); //dostępne globalne przerwania A tu jest podprogram obsługi przerwania: ISR(USART_TXC_vect) { cbi(PORTB, PB2); //0 na pinie PB2 } aha i jeszcze musisz włączyć bibliotekę: #include <avr/interrupt.h>...
Rozwiązanie było proste! Wystarczyło dopisać sei(); w funkcji obsługującej przerwanie USART Ciekawe jak sprawa będzie wyglądać gdy podłącze drugi enkoder (po potrzebuje dwóch)?
Skoro przerwanie ISR(USART_RXC_vect) używa się, gdy do mikrokontrolera przesyłamy dane z urządzenia zewnętrzengo, to w moim programie zastosowanie przerwania od nadawania: ISR(USART_TXC_vect) byłoby na miejscu? (być może jest to zupełnie niekonieczne, ale jestem ciekawy czy dobrze rozumuję).
Moim zdaniem jest prostsza metoda. Tworzy się dwa indeksy i tablice buforującą. Oprogramowanie zapisuje znaki to bufora i zwiększa pierwszy indeks (umownie indeks programowy). Po takim zapisie przed wyjściem zezwala na przerwanie. Przerwanie z kolei jak wykryje, że bufor programowy jest różny od drugiego buforu (umownie bufor sprzętowy) to z aktualnie...
Program ma wysyłać "powitanie" na port szeregowy. Kompilowany przy pomocy Winavr + avr studio(w najnowszych dostępnych wersjach). Bez optymalizacji wysyła "Witam" ale tylko raz, a powinien dwa razy. Po włączeniu optymalizacji nie wysyła nic. Gdy robiłem transmisję przez polling wszystko było ok. Przerwanie włącza makro TXON; . Dzięki Plik iom16.h /*...
char c; int a=0; ISR(USART_RX_vect) { c = UDR; a = 1; } Zmienne c oraz a isnieja tylko w przerwaniu. Po zakonczeniu przerwania giną... Aby przerwanie moglo ingerowac w zmienne globalne: volatile char c; volatile int a;
O jaką różnicę koledze chodzi?. O fakt, że dla zwykłych (blokujących inne przerwania) przerwań wykonanie instrukcji w kodzie przerwania, a wykonanie ich w pętli głównej na podstawie ustawionej flagi to praktycznie to samo?. Mniej więcej właśnie o to. Tak czy siak mamy niepodzielny fragment kodu blokujący inne "procesy". Co innego gdyby to rozbić na...
Witam Problem jak w temacie, przy próbie wysłania znaku z terminala do atmegi, program się zawiesza. [syntax=c]#define BAUD 2400 #define MYUBRR F_CPU/BAUD/16-1 #include <stdio.h> #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> volatile unsigned char odb_flaga =0;//flaga informująca main o odebraniu liczby...
super, okazalo sie ze telefon sie przywiesil...dlatego nie chcial wspolpracowac.. teraz dzialal,z poprzednim kodem tez..eh.... nadal jednak jest problem z odbiorem... dzieki zumek,doksztalciles mnie troche :) mimo _BV(RXEN) | (1<< RXCIE) i sei(); przerwanie tak jakby wogole nie wystepuje... :/ SIGNAL(SIG_UART_RECV) { char znak; znak=UDR; dana(0x41);...
Witam, od jakiegoś czasu próbuję rozwiązać problem odbierania kodu RC5 przez avr'ka. Ponieważ nie jestem do końca pewny zbudowałem (a raczej zaprogramowałem) prosty nadajnik tego kodu. Tak wygląda kod odbiornika: [syntax=c] #include <stdio.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/io.h> #include <stdint.h>...
Witam, teraz pokażę jak tymczasowo uprościłem sprawę (chociaż niekoniecznie dobrze, ale teraz teoretycznie zniknęły problemy z atomizacją itd.). Martwi mnie jednak, że korzystając ze swojej tablicy, jak od przychodzącej nutki zamiast 24 odejmę 27 (trochę inna generowana częstotliwość), wówczas wolnozmienne gra dobrze, a szybkie gubi nuty, i w drugą...
Witam, Podłączyłem port RX i TX USART'a w jedną linie - czyli nadaję i odbieram za pomocą jednej lini (1-Wire) Teraz proszę o podpowiedz, używam przerwania i bufora 8 bajtowego do odbioru i nadawania i teraz nie wiem co zablokować by wysyłając nie dostać echa z RX'a? Próbowałem wyłączyć przed wysłaniem możliwość odbioru RXEN i wysłać, ale gdy włączyłem...
Witam. Chce zrobic transmisje szeregowa usart miedzy dwoma stmega 16 z predkoscia taktowania lini 250kbitsow. Z obliczen wyszlo mi ze UBRR dla Q16mhz bedzie rowne 4 :), a dla Q= 8mhz bedzie rowne 8 :) . Ale to jeden z mniejszych problemow.... Jak w srodowisku IAR(ktore jest naprawde niedoceniane, wersja free do 4kb kodu) napisac funkcje realizujace...
jestem tylko trochę bliższy prawdy. Ciekawy jestem czy dobrze myślę. Ale mam też dużo niejasności. Czyli tak: 1.Zezwalam na globalne przerwania. 2. Ustawiam prędkość w TWBR 3. Ustawiam w TWCR: TWEN - odpalenie sprzętu TWIE - odblokowanie przerwania sprzetu Do tej pory chyba na razie nic się nie dzieje. 4. Ustawiam w TWCR TWSTA Czy w tym momencie generowany...
Ojej... rzeczywiście strasznie głupi błąd. Po prawdzie kod był pisany na szybko i nawet nie przyszło mi do głowy że to może być wina umieszczenia całej funkcji w przerwaniu. Dzięki wielkie Panowie :D. Wrzucam kod, być może komuś się kiedyś przyda. [syntax=c]#include <avr/io.h> #define F_CPU 16000000 #include <util/delay.h> #include <avr/interrupt.h>...
Znaki \r, \n, \" itd. są określone w specyfikacji języka c i jeśli taki znak występuje w stringu ujęty w cudzysłów to kompilator automatycznie zamienia go na daną wartość w kodzie szesnastkowym. Pokaż funkcję usartSendString razem z przerwaniem od Tx (jeśli wysyłasz używając przerwań). Może tam masz błąd. Może nie wysyłasz ostatniego znaku ze stringu...
nie chcialem wklejac calego kodu dla uC :), wybralem tylko ta czesc co mi nie dziala oto calosc uC: #include <avr/io.h> #include <avr/signal.h> #include "uart.h" #include "SPI.c" #include "twiradzio.c" #define MUX_ON PORTB |= 0x02//ustawia 1 na pinie #define MUX_OFF PORTB &= 0xFD//ustawia 0 na pinie #define...
Witam. Mam taki problem. Przyłączyłem Eryka T68i do HyperTerminal-a i komunikacja w obie strony działa normalnie. Midzio. Przyłaczyłem Atmege16 do tego samego programu (nie zmieniając jego parametrów) i tez wszystko OK tzn. procek wysyła jakis komunikat a ten jest wyświetlany i na odwrót - pisze coś na klawiaturze kompa a to wyswietla mi sie na LCD....
właśnie też nie. Tzn gdy zrobie inaczej, najpierw coś zapiszę a później odczytam to jest ok. Czyli jak zrobie tak: int main(void) { DDRD=0x02; //0 to wejscie //1 to wyjscie GICR=(1<<INT0)|(1<&... //zezwolenie na przerwanie zewnetrzne INT0 MCUCR=(1<<ISC01)|(1<... //wjescie INT0...
witajcie fachowcy... po przesiadce na wyższy uC dostałem wiecej potrzebnych mi przerwań i bonus (czytaj problem) a polega on na raczej mojej nieumiejetności zablokowania tego jednego przerwania nie blokując innych. mieszam w tych wszystkich dziwnych znacznikach i nic. w tle działają sobie dwa usart'y a na int2 jest klawiatura, i musi byc na int2, lecz...
Dlaczego podczas odczytu I2C nie będą uwzględniane przerwania? Ja ich na ten czas nie wyłączam, chyba że robi się to sprzętowo. Sam fakt, iż robisz to w obsłudze przerwania, powoduje, że obsługa pozostałych przerwań jest minimalnie opóźniona (stąd obsługa przerwań powinna być błyskawiczna i przekazywać istotne dane do przeliczenia w pętli głównej)...
gdzie w ogóle main tutaj? Dodano po 49 Do zliczenia czasu powinieneś zastosować przerwanie timera.
Witam... To będzie sporo pisania więc trzymajcie się... ;) #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <inttypes.h> #include <stdlib.h> #define F_CPU 8000000 //wewnętrzny generato na 8Mhz #define PARITY_NONE 0 #define PARITY_EVEN (1<<UPM1) #define PARITY_ODD ((1<<UPM1)|(1<&...
Używam Timera1 z Atmega164P w trybie CTC, Atmega ma kwarc 16MHz, interesujący kawałek programu wygląda tak: Konfiguracja Timera: void Timer1_Init(void) { DDRD |= (1<<PD7); // PD7 wyjście PORTD |= (1<<PD7); // PD7 <= 1 TCCR1B = (1<<WGM12)|(1<<C...
zatem tak procesor atmega16, zaprogramowałem atmege na pomiar ciągły i mam bardzo dziwny problem, atmega połączona przez UART do komputera, zczytywanie w labview. tam trzeba ustawić takie coś jak delay before raad(ms), w kodzie na atmedze ustawiłem _delay(100), w programie tez, i mam bardzo dziwny problem, nic nie jest podpięte do przetwornika, powinna...
Witam. Mam taki problem, gdyż chciałbym ogarnąć komunikację poprzez UART między dwoma mikro. Mam dwa uC: Atmegę 16, która działa jako master oraz Atmegę 88 jako Slave (na której będzie termometr, z którego będę odczytywał dane). Programy, definicje wyglądają następująco: plik RS485.h #indef RS_INT_H #define RS_INT_H //rozmiar buforów nadawania i odbierania...
Od jakiegos czasu mam dziwny problem z wyswietlaczem. Ponizej podaje kod zrodlowy: lcd.h // Definicje dotyczace LCD #define LCD PORTC //port z LCD #define RS 0 // wybor rejestru #define RW 2 // 1 - odczyt; 0 - zapis #define E 3 // sygnal zezwalajacy (enable) #define SET_E LCD |= _BV(E) #define CLR_E LCD &= ~_BV(E) #define...
Zainstalowałem AVR Studio4 i lecę od początku z google i pdf na temat ASM i AVR Powiedzcie chociaż czy w dobrym kierunku zmierzam? Bo jak w złym to odpuszczam i daje sobie spokój, pobawię się migającymi diodami w Bascomie. Tam gdzie nie ma komentarza to nie wiem co to znaczy i co robi ale było w pdf lub innych opisach, jeżeli ktoś może mi wyjaśnić instrukcje...
Proponuję użyć przerwań, będzie to działało jak trzeba. Z tego co pamiętam to w tym procesorze jest przerwanie odpowiedzialne za odebranie danych po UART. Wtedy robisz obsługę przerwania i w niej odsyłająsz to co dostałeś albo zapisujesz do zmiennej, ustawiasz flagę i w pętli głównej sprawdzasz czy coś przyszło, jak przyszło to odsyłasz.
Witam, pisze program w assemblerze który pozwarciu INT0, będzie wykonywać określoną czynność(łączyć się z innym urządzeniem), Ale narazie utknąłem w martwym punkcie, napisałem program który po zwarciu INT0 wywołuje przerwanie które zapala diodę podpiętą do lini PC0 5 razy i gasi(zapalenie uzyskuje poprzez ustawienie PC0 w stan wysoki). Całość funkcjonuje...
Witam. Mam taki problem. Próbuję skomunikować ze sobą dwa uC. Docelowo będą one skomunikowane po RS485, ale teraz w fazie testów próbuję je połączyć normalnie po UARCie. Skrosowałem TXD i RXD dwóch Atmeg. Wysyłam z Atmega162 znak 0x3A, natomiast na Atmedze32 włącza się przerwanie od odebrania (dioda niezależna od znaku odebranego się zapala ) ale nie...
usart przerwanie przerwanie usart atmega16 usart
mikrofon odsłuchu schemat selena układ resetu atmega
delonghi zawor spieniacza advance acoustic
Automatyczna skrzynia 1.6 benzyna - błąd i diagnostyka Centralny zamek nie działa w Fiacie Punto 2012 - prawe drzwi pasażera