Gast
#318318
Benutze in meinem Programm öfters eine Warteschleife um Vorgänge
zeitlich zu versetzten. Hierzu verwende ich folgende Funktion
void warte (unint16_t t)
{ unit16_t i,j;
for (i=1,i<t;i++)
{
for (j=1,j<200;j++)
{asm volatile ("nop");
}
}
}
Jetzt mal angenommen, ich rufe die Funktion folgendermassen auf:
warte (1);
zu meinem Fragen?
ist es richtig, das bei t=1 die Schleife 200 Zyklen brauch?
Bei einer Frequenz von 8Mhz ergibt sich dann eine wartezeit von:
1/8.000.000 * 200 ????????
aus irgendwelchen gründen messe ich bei einer Frequenz von 8Mhz einem
t=10 eine Wartezeit von 0,5 ms herraus(mit Oszi) .....Woher kann der
Faktor kommen!
hoffe Irgend jemand kann mir bei diesem peinlichen Problem helfen!
Gabi