Prog läuft nicht >>> ISR(TIM1_COMPA) ok?
Hallo zusammen.
Versuche mich gerade an Timer-Interrupt. uC-Schaltung läuft nicht, kein Blinken.
Warnung vom Compiler;
'TIM1_COMPA' appears to be a misspelled signal handler, missing __vector prefix [-Wmisspelled-isr]
Wo liegt der Fehler?
Code:
#define F_CPU 1000000UL // int.Takt als Macro übernehmen
#include <avr/interrupt.h> // Interrupt einbinden, damit Interrupt funktioniert
ISR(TIM1_COMPA) // Interrupt Service Routine (Seite 48), sobald Vergleichswert OSR1A erreicht wird
{
PORTB ^= (1<<PB0); // LED blinkt
}
int main(void)
{
DDRB |= (1<<PB0); // LED als Ausgang
TCCR1B |= (1<<WGM12) | (1<<CS11); // Timer1 (16bit), CTC-Mode, Prescaler=8
TIMSK1 |= (1<<OCIE1A); // Interrupt für Timer1, Interrupt auslösen sobald Vergleichswert erreicht wird
OCR1A = 62500; // OCRx = (Wunschzeit bis 1 Interrupt * f_CPU/Prescaler) - 1 // 500ms*1 000 000/8=62500 // bei 100ms=12499
sei(); // Interrupt´s werden gestartet und läuft im Hintergrund
while(1)
{
}
}
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
oberallgeier
Mein Aufruf der ISR (für mega328P) :
Code:
ISR(TIMER2_COMPA_vect) //
Hallo OberAllgeier, im Datenblatt des ATTiny84 finde ich nur TIM1_COMPA als Timer/Counter1 Compare Match A (Seite 48).
Anhang 34221
Es gibt keinen TIM1_COMPA_xxx oder TIMER1_COMPA_vect.
Daher meine Unverständniss (Hilflosigkeit) bzgl. der Warnmeldung.