Hallo.
Ich habe einen Code von Ulrich Radig auf dem NET-IO am laufen und gucke
mir gerade den timer an wie der den Sekunden Impuls erzeugt.
Dort sehe ich diese Initialisierung des Timers:
1 | //----------------------------------------------------------------------------
|
2 | //Diese Routine startet und inizialisiert den Timer 1
|
3 | void timer_init (void)
|
4 | {
|
5 |
|
6 | TCCR1B |= (1<<WGM12) | (1<<CS10 | 0<<CS11 | 1<<CS12);
|
7 | TCNT1 = 0;
|
8 | OCR1A = (F_CPU / 1024) - 1;
|
9 | TIMSK1 |= (1 << OCIE1A);
|
10 | return;
|
11 |
|
12 | };
|
Laut Datenblatt sagt
1 | TCCR1B |= (1<<WGM12) | (1<<CS10 | 0<<CS11 | 1<<CS12)
|
das aus, dass es ein CTC (1<<WGM12) ist und "External clock source on T0
pin. Clock on rising edge" (1<<CS10 | 0<<CS11 | 1<<CS12) aktiviert ist.
An T0 (Port B Pin0) ist aber garnichts angeklemmt. Wie aber kann durch
diese Initialiserung mit
1 | //----------------------------------------------------------------------------
|
2 | //Timer Interrupt 1
|
3 |
|
4 |
|
5 | ISR (TIMER1_COMPA_vect)
|
6 | {
|
7 |
|
8 | time++; // Sekunde hochzählen
|
9 | }
|
ein Sekunden Impuls erzeugt werden?