Willst du es nicht verstehen oder kanst du nicht.
ES IST VOLLKOMMEN EGAL WIE ICH F_CPU EINSTELLE!!!!!!!!!!
Huch?
Ich würde die Datei delay.h im util-Verzeichniss umbenennen. Der zu erwartende Kompilerfehler würde zeigen, dass wirklich diese Datei eingebunden wird. Oder hier mal 8MHz eintragen:
#ifndef F_CPU
/* prevent compiler error by supplying a default */
# warning "F_CPU not defined for <util/delay.h>"
# define F_CPU
1000000UL
#endif
[Edit]
Echt spannend. Minimalprogramm:
Code:
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
_delay_ms(100);
while(1);
}
mit 8MHz:
Code:
1 .file "temp.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
15 .Ltext0:
16 .global main
18 main:
19 .LFB6:
20 .LM1:
21 /* prologue: function */
22 /* frame size = 0 */
23 .LM2:
24 0000 88EE ldi r24,lo8(1000)
25 0002 93E0 ldi r25,hi8(1000)
26 .LVL0:
27 .LBB12:
28 .LBB13:
29 .LBB14:
30 .LBB15:
31 .LM3:
32 0004 28EC ldi r18,lo8(200)
33 0006 30E0 ldi r19,hi8(200)
34 .L2:
35 0008 F901 movw r30,r18
36 .LVL1:
37 /* #APP */
38 ; 105 "c:/winavr/lib/gcc/../../avr/include/util/delay_basic.h" 1
39 000a 3197 1: sbiw r30,1
40 000c 01F4 brne 1b
41 ; 0 "" 2
42 /* #NOAPP */
43 .LBE15:
44 .LBE14:
45 .LM4:
46 000e 0197 sbiw r24,1
47 .LM5:
48 0010 01F4 brne .L2
49 .L6:
50 0012 00C0 rjmp .L6
51 .LBE13:
52 .LBE12:
53 .LFE6:
79 .Letext0:
mit 1MHz:
Code:
1 .file "temp.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
15 .Ltext0:
16 .global main
18 main:
19 .LFB6:
20 .LM1:
21 /* prologue: function */
22 /* frame size = 0 */
23 .LBB12:
24 .LBB13:
25 .LBB14:
26 .LBB15:
27 .LM2:
28 0000 88EA ldi r24,lo8(25000)
29 0002 91E6 ldi r25,hi8(25000)
30 .LVL0:
31 /* #APP */
32 ; 105 "c:/winavr/lib/gcc/../../avr/include/util/delay_basic.h" 1
33 0004 0197 1: sbiw r24,1
34 0006 01F4 brne 1b
35 ; 0 "" 2
36 /* #NOAPP */
37 .L2:
38 0008 00C0 rjmp .L2
39 .LBE15:
40 .LBE14:
41 .LBE13:
42 .LBE12:
43 .LFE6:
69 .Letext0:
Lesezeichen