Hi Leute,
auch auf die Gefahr hin, dass ich mich nun lächerlich mache...
Delay_ms() läuft bei mir ca. 4x langsamer, wie ich es eigentlich erwarte
und ich habe keine Ahnung, woran es liegt.
1 | #include <avr/io.h>
|
2 | #include <avr/delay.h>
|
3 | #define F_CPU 1000000UL
|
4 |
|
5 | int main(void)
|
6 | {
|
7 | DDRB |= (1<<PINB1); // LED AN
|
8 |
|
9 | uint8_t loops = 100; // Zähler
|
10 |
|
11 | while(1)
|
12 | {
|
13 | while (loops--)
|
14 | _delay_ms(10);
|
15 |
|
16 | PORTB ^= (1<<PINB1); // Toggle LED
|
17 | loops = 100; // Zähler reset
|
18 | }
|
19 | }
|
Im AVR Studio (6) habe ich Internen Oszillator, 1MHZ, 64 ms
Verzögerung(Default) eingestellt. (Kann man mit dem AVR Studio auch die
Fusebits genau anschauen und nicht nur alles als Option auswählen?)
Ich habe nun alle möglichen Foren gewälzt, aber ich weiß nicht, woran es
scheitert.
Fusebits müssen ja richtig sein, kann ich ja nur stumpf auswählen. Die
F_CPU ist korrekt und delay_ms erhält keinen zu höhen Wert.
Was für einen Fehler mache ich?
Gruß,
Durokh