Hallo,
ich steh gerade auf dem Schlauch.
Ich versuch gerade mit meinem ATTiny 841 Daten über die USART
einzulesen.
Dies würde ich gerne über eine Interrupt Routine machen, aber bei der
Aufruf der Interrupt Routine klappt nicht.
Meine ISR Routine lautet:
#####
ISR(USART0_RXC_vect) // USART0_RXC_vect
{
// Daten aus dem Puffer lesen
data_temp = UDR0;
PORTA ^= (1<<PA3);
}
#####
Beim Kompilieren mit den XC8 V2.0 bekomme ich folgende Fehlermeldung:
#####
main.c:36:5: warning: 'USART0_RXC_vect' appears to be a misspelled
signal handler, missing __vector prefix [-Wmisspelled-isr]
ISR(USART0_RXC_vect) // USART0_RXC_vect
#####
Laut Datenblatt gibt es den Interrupt Vector "23 0x0016 USART0_RXC
USART0 Rx Complete".
Was mach ich hier gerade falsch.
Anbei noch mein main.c
Danke für euren Support.
Gruß
Ralf
Also im Atmel Studio hätte ich es genau so gemacht wie du, ISR Bezeichnung aus dem Datasheet und _vect angehängt. Meine Vermutung wäre darum das sich Microchip beim XC8 dafür irgendeine andere Namens Pre/Postfix Idee überlegt hat, schau mal in die eingebunden Header bzw. die von denen eingebunden Header Dateien.
C:\Atmel_Toolchain\AVR8_GCC\avr-gcc-8.3.0-x64-mingw\avr\include\avr\iotn 841.h ************************************************************************ ***** /* USART0, Start */ #define USART0_START_vect _VECTOR(21) #define USART0_START_vect_num 21 /* USART0, Rx Complete */ #define USART0_RX_vect _VECTOR(22) #define USART0_RX_vect_num 22 /* USART0 Data Register Empty */ #define USART0_UDRE_vect _VECTOR(23) #define USART0_UDRE_vect_num 23 /* USART0, Tx Complete */ #define USART0_TX_vect _VECTOR(24) #define USART0_TX_vect_num 24
Tim T. schrieb: > Also im Atmel Studio hätte ich es genau so gemacht wie du, ISR > Bezeichnung aus dem Datasheet und _vect angehängt. Das ist leider keine Garantie, wie ich hier mal feststellen musste: Beitrag "INT0 IRQ beim Tiny44A vs. Tiny44 (WINAVR-20100110 )"
Hallo, danke für eure Tipps. Es lautet "_RX_" und nicht "_RXC_". Der richtige Aufruf lautet "ISR(USART0_RX_vect)". Frohe Ostern. Gruß Ralf
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.