Gast
#1101257
Hallo libe Leute,
Bei der Programmierung eine Warteschleife ist mir in meinem richtigen
Projekt aufgefallen dass diese auf irgendeine Art und Weise gar nicht
erkannt wird bzw aufgerufen wird. Nach einigen Nachforschungen bin ich
dann auf verschiede Threads gestoßen die besagen dass bei
eingeschalteter Optimierung diese Funktion wegen irgeneines Grundes
umgangen wird. Mit ausgeschalteter Optimierung funktioniert es SUPER.
Kann mir jemand sagen wo der Fehler liegt?
Der Quellcode liegt im Anhang und ist aus nem Buch.Hier ein Auszug aus
dem lss-File.
#######################################################################
0000005e <delay>:
void delay(unsigned int time)
{
unsigned int i;
for(i=0;i<time;i++);
}
5e: 08 95 ret
00000060 <main>:
{
delay(3500);
while(1)
{
asm("nop");
60: 00 00 nop
62: fe cf rjmp .-4 ; 0x60 <main>
00000064 <_exit>:
64: f8 94 cli
00000066 <__stop_program>:
66: ff cf rjmp .-2 ; 0x66 <__stop_program>
#######################################################################
Vielen Dank! Benny.