Mateusz Napisano Listopad 9, 2010 Udostępnij Napisano Listopad 9, 2010 Witam. Napisałem taki kod: #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define SetBit(x,y) x |= (1<<y) #define ClrBit(x,y) x &= ~(1<<y) #define NegBit(x,y) x ^= (1<<y) volatile unsigned char bufor_RXD=0; //************************************** //procedura przerwania od USART RX //************************************** ISR (USART_RXC) { bufor_RXD = UDR; //Odebranie Danych while(!(UCSRA&(1<<5))); _delay_us(400); PORTC=~PORTC; UDR = bufor_RXD; //Wysłanie danych } int main(void) { //ustawienia portów I/O DDRC = 0b11111111; //port jako wyjscie PORTC = 0b00001010; DDRD = 0b00000000; //1 na 0 bicie ustawia jako wyjscie port PD0 (CS1) PORTD = 0b00000000; //ustawienie wyjścia PD0 w stan wysokim (niewybrany przetwornik U4) //************************************** //ustawienie USART //************************************** UCSRB = 0b00011000; //ustawienie 1 na 3 i 4 bicie powoduje załącznie TXD i RXD UCSRC = 0b00000110; //ustawienie 1 na 2 i 3 bicie oznacza, że bedzie 8 bitow w ramce danych UBRRL = 51; //prędkość transmisji 19200 SetBit(UCSRB,7); //włączenie przerwania od USART1 RX sei(); //zgoda na globalne przerwanie while(1) //nieskończona pętla { } } Czy nazwa przerwania od USART jest ok? Bo wydaje mi się, że w nie nie wchodzi. Chyba że gdzie indziej jest błąd. AVRDUDE wyświetla mi Warning: ../Testowa_hamownia.c:16: warning: 'USART_RXC' appears to be a misspelled signal handler Cytuj Link do komentarza Share on other sites More sharing options...
Elvis Listopad 9, 2010 Udostępnij Listopad 9, 2010 Spróbuj zamienić na: ISR(USART_RXC_vect) Cytuj Link do komentarza Share on other sites More sharing options...
Mateusz Listopad 9, 2010 Autor tematu Udostępnij Listopad 9, 2010 Ok działa 🙂 ale czemu tak ? Cytuj Link do komentarza Share on other sites More sharing options...
OldSkull Listopad 9, 2010 Udostępnij Listopad 9, 2010 Bo taka jest poprawna nazwa wektora przerwania. Jeśli chodzi o przerwania (i inne problemy z AVRami) polecam: http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!