Hm also ich hab jetzt nochmal mein Programm auf das wesentlich wichtige beschränkt:
was von GCC wie folgt übersetzt wird:Code:#define F_CPU 8000000UL #include <avr/io.h> #include <util/delay.h> #include "port.h" int main(void) { DDRB=0xFF; while(1) { _delay_ms(100); toogle_pin(PORTB,PB0); } return 0; }
Und erstaunlicherweise funktionierd.Code:.file "main.c" __SREG__ = 0x3f __SP_H__ = 0x3e __SP_L__ = 0x3d __CCP__ = 0x34 __tmp_reg__ = 0 __zero_reg__ = 1 .text .global main .type main, @function main: /* prologue: function */ /* frame size = 0 */ /* stack size = 0 */ .L__stack_usage = 0 ldi r24,lo8(-1) out 55-32,r24 ldi r25,lo8(1) .L2: ldi r18,lo8(159999) ldi r19,hi8(159999) ldi r20,hlo8(159999) 1:subi r18,1 sbci r19,0 sbci r20,0 brne 1b rjmp . nop in r24,56-32 eor r24,r25 out 56-32,r24 rjmp .L2 .size main, .-main
Ich hab keine Ahnung woran es lag, aber jetzt schein alles zu funktionieren.
Auch sachen ala
gehen plötzlich.Code:for(uint8_t i=0;i<10;i++) _delay_ms(100);
Obwohl ich schwören könnte vorher alles richtig gemacht zu haben.






Zitieren

Lesezeichen