Matthias S. schrieb:
> Evtl. läuft der MC mit den internen 8Mhz. Wenn du die Möglichkeit
> hast,
> lies doch mal die Fuses aus. Du kannst auch mal F_CPU auf 8000000UL
> ändern und schauen, obs dann passt - das wäre der Beweis.
genau so war es auch. alle Fuses waren auf 0x00 (wurde mir zumindes im
Atmel Studio so angezeigt).
allerdings passt das auch nicht wirklich.
wenn ich jetzt einen Timer initialisiere
1 | ...
|
2 | // Timer 0
|
3 | TCCR0A = (1 << WGM01); // CTC Modus
|
4 | TCCR0B = (1 << CS01) | (1 << CS00); // clk/64 -> = 125kHz
|
5 | OCR0A = 125-1; // -> 1ms Interrupt
|
6 |
|
7 | // Overflow Interrupt allow
|
8 | TIMSK0 |= (1 << OCIE0A);
|
9 | ...
|
10 |
|
11 |
|
12 |
|
13 |
|
14 | ISR (TIMER0_COMPA_vect){
|
15 | unsigned int millisekunde = 0;
|
16 | unsigned int sekunde = 0;
|
17 |
|
18 | millisekunde++;
|
19 | if(millisekunde == 1000){
|
20 | millisekunde = 0;
|
21 | sekunde++;
|
22 | TOGGLEBIT(PORTB, 5);
|
23 | if(sekunde == 60){
|
24 | sekunde = 0;
|
25 | }
|
26 | }
|
27 | }
|
und die LED in der Interrupt Routiene Toggle (dort warte ich 1000
Aufrufe ab, damit ich eine Sekunde habe), dann ist die ungefähr doppelt
so schnell.
Wenn ich aber OCR0A auf 250 hochsetze, passiert auch nichts anderes.