Gast
#2169299
Hi Leute, ich hab vor kurzem mit dem Programmieren von AVR µC angefangen. Im Augenblick habe ich einen mega644p und versuche einen einfachen Timer zum Laufen zu bringen. Dazu habe ich folgendes Script verwendet. Arbeiten tue ich mit dem AVR Studio 5 //************************************************************* #include <avr/io.h> #include <avr/interrupt.h> //Variablen für die Zeit volatile unsigned int millisekunden; volatile unsigned int sekunde; volatile unsigned int minute; volatile unsigned int stunde; int main(void) { DDRB = 0xff; // Timer 0 konfigurieren TCCR0 = (1<<WGM01); // CTC Modus TCCR0 |= (1<<CS01); // Prescaler 8 // ((1000000/8)/1000) = 125 OCR0 = 125-1; // Compare Interrupt erlauben TIMSK |= (1<<OCIE0); // Global Interrupts aktivieren sei(); while(1) { /*Hier kann die aktuelle Zeit ausgeben werden*/ } } /* Der Compare Interrupt Handler wird aufgerufen, wenn TCNT0 = OCR0A = 125-1 ist (125 Schritte), d.h. genau alle 1 ms */ ISR (TIMER0_COMP_vect) { millisekunden++; if(millisekunden == 16000) { sekunde++; millisekunden = 0; } sekunde++; if(sekunde == 60) { minute++; sekunde = 0; } stunde++; if(minute == 1) { PORTB |= (1<<PB0); } if(minute == 1) { PORTB &= ~(1<<PB0); } } } //************************************************ Die Zeile: // Compare Interrupt erlauben TIMSK |= (1<<OCIE0); habe ich durch: TIMER0_COMPA_vect |= (1<<OCIE0A); ersetzt. Jetzt erhalte ich dauernd die Fehlermeldung: Error 1 '__vector_16' undeclared (first use in this function) C:\Dokumente und Einstellungen\*******\timetest.c Was mach ich blos falsch? lg HeyHey