Huch?Willst du es nicht verstehen oder kanst du nicht.
ES IST VOLLKOMMEN EGAL WIE ICH F_CPU EINSTELLE!!!!!!!!!!
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:
[Edit]#ifndef F_CPU
/* prevent compiler error by supplying a default */
# warning "F_CPU not defined for <util/delay.h>"
# define F_CPU 1000000UL
#endif
Echt spannend. Minimalprogramm:
mit 8MHz:Code:#include <avr/io.h> #include <util/delay.h> int main(void) { _delay_ms(100); while(1); }
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 .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:
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:







Zitieren
Lesezeichen