Hallo, ich habe ein Problem mit dem Timer Interrupt (Output Compare Modus). Die Interrupt-Routine wird nicht ausgeführt. Was mache ich falsch?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
|
Anzeige
|
Problem mit Timer Compare InterruptHallo, ich habe ein Problem mit dem Timer Interrupt (Output Compare Modus). Die Interrupt-Routine wird nicht ausgeführt. Was mache ich falsch?
H. G. schrieb: > Was mache ich falsch? Uns eine grundlegende Information vorzuenthalten, nämlich um welchen µC es konkret geht. Stefan Ernst schrieb: > H. G. schrieb: >> Was mache ich falsch? > > Uns eine grundlegende Information vorzuenthalten, nämlich um welchen µC > es konkret geht. Ach ja... AT90PWM316 H. G. schrieb: > OCR0A = 100; // alle 12,5 us ein interrupt Der Kommentar ist falsch, es sind 12,625µs. 101 Zyklen ist schon sportlich. Dein kleiner Interrupt braucht etwa 30 Zyklen, kostet also schon 30% CPU-Last. Peter H. G. schrieb: > TCCR0A |= (1<<WGM01)|(1<<WGM00); // Fast PWM (mode 3) PWM benutzt doch gerade, um keinen Interrupt zu brauchen. Die Interrupts verhalten sich oft auch etwas anders. Peter H. G. schrieb: > AT90PWM316 Und wie kommst du dann auf TIM0_COMPA_vect? PS: Und warum ignorierst du die diesbezügliche Warnung des Compilers? Ich habe die ISR jetzt lt. Datenblatt ausgebessert:
Die Warnung erhalte ich aber noch immer! warning: 'TIMER0_COMPA_vect' appears to be a misspelled signal handler Auch habe ich den Code etwas umgeschrieben aber die ISR wird noch immer nicht ausgeführt! Wo ist der Wurm drinnen?
H. G. schrieb: > Die Warnung erhalte ich aber noch immer! > warning: 'TIMER0_COMPA_vect' appears to be a misspelled signal handler Die Warnung ist nun weg. Es war der AT90PWM216 anstatt 90PWM316 eingestellt! Aber die ISR wird noch immer nicht ausgeführt!
Gast
#2809054
In der io90pwm316.h steht drin:
Nenne deinen ISR-Vektor einfach mal TIMER0_COMP_A_vect Die Fehlermeldung sagt doch deutlich, dass der Name "TIMER0_COMPA_vect" nicht bekannt ist. Also muss man suchen - auf dem eigenen Rechner. Dauert keine Minute. Toll, das wars! Wobei der Compiler bei TIMER0_COMPA_vect keine Warnung mehr geschrieben hat! Im Headerfile nachzusehen, daran hab ich gar nicht gedacht! Danke für den Tip! Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|