Hi,
ich will mit meinem ATmega8 ne Uhr baun. Hab jetzt aber ein Problem mit
dem Programm dafür.
Folgender Code:
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 | #include <stdint.h>
|
4 |
|
5 | volatile uint8_t Sekunde;
|
6 |
|
7 | void Start_Timer( void )
|
8 | {
|
9 | TIMSK |= (1 << OCIE1A); // CTC-Interrupt zulassen
|
10 | TCCR1B = (1 << WGM12) | (1 << CS12); // CSC Modus; PSC = 256
|
11 | OCR1A = 62499; // 16 MHz / 256 - 1
|
12 | }
|
13 |
|
14 | // Timer-Interrupt
|
15 | ISR( TIMER1_COMPA_vect )
|
16 | {
|
17 | ++Sekunde;
|
18 | }
|
19 |
|
20 | int main(void)
|
21 | {
|
22 | DDRD = 0xFF; // Port D als Ausgang
|
23 |
|
24 | Start_Timer();
|
25 | sei();
|
26 |
|
27 | for( ;; ){
|
28 | PORTD = Sekunde;
|
29 | }
|
30 | }
|
Das ganze klappt auch ganz gut, nur leider um den Faktor ~10 zu langsam.
Und ich find den Fehler nicht! Kann mir vielleicht jemand helfen?
Danke!