Ich versuche gerade eine ISR für einen ATMega8 zu schreiben.
Clock bei 8MHz, CTC für Timer 1A.
1 | void signal (TIMER1_COMPA_vect)
|
2 | {
|
3 | /* static uint16_t ITime = 0;
|
4 |
|
5 | ITime ++;
|
6 |
|
7 | if (ITime > 500)
|
8 | {
|
9 | PORTD &= ~(1<<PD4);
|
10 | } else PORTD |= (1<<PD4);
|
11 |
|
12 | if (ITime >= 1000) ITime =0;
|
13 | */
|
14 | PORTD |= (1<<PD4);
|
15 |
|
16 | return;
|
17 | }
|
18 |
|
19 | int main (void)
|
20 | {
|
21 | PORTC = 255;
|
22 | DDRC = 0;
|
23 |
|
24 | PORTD = 255 & ~(1<<PD4);
|
25 | DDRD = (1<<PD4);
|
26 |
|
27 |
|
28 | TCCR1B = (1<<WGM12) | (1<<CS11);
|
29 | TIMSK = (1<<OCIE1A);
|
30 | OCR1A = 10;
|
31 |
|
32 | sei();
|
33 |
|
34 | while (1) {}
|
35 | }
|
Leider wird der Pin nicht einmal eingeschaltet.
(kein Sprung in die ISR)
WGM für den CTCModus von T1A
CS11 Prescaler auf 8
OCIE1A Interrupt einschalten
OCR1A vergelichsregister.
Finde meinen FEhler nicht, kann mir einer einen Schubs in die richtige
Richtung geben ?