Normalerweiße klappt es immer auf anhieb den Timer zu konfigurieren,
doch jetzt schaffe ich es nicht, obwohl ich mir fast sicher bin das ich
alles richtig gemacht habe. Wenn ich in OCR1A den Wert 14399
reinschreibe (quarz 3686400Hz) tooglet der Timer einen Port genauso
schnell als ich den Wert 1 rein schreibe. Ich habe das ganze auch an
OCR1B versucht, was logischerweiße nicht geht, aber hätte ja sein
können.
Hier mal mein Code:
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 |
|
5 | ISR(TIMER1_COMPA_vect)
|
6 | {
|
7 | PORTB ^= (1<<PB1);
|
8 | }
|
9 |
|
10 | int main(void)
|
11 | {
|
12 | DDRB |= (1<<PB1);
|
13 |
|
14 | TCCR1A |= (1<<WGM12); //CTC
|
15 | TCCR1B |= (1<<CS12); //Prescaler 256
|
16 | TIMSK |= (1<<OCIE1A);
|
17 | OCR1A = 14399;
|
18 |
|
19 | sei();
|
20 | while(1)
|
21 | {
|
22 | //TODO:: Please write your application code
|
23 | }
|
24 | }
|