Hi,
gleiches Problem...
...nur mit dem IAR-Compiler.
Aber ich denke auch hier gibt es keinen Befehl.
Hat jemand einen Democode in C?
Würde mir sehr weiter helfen!
Bzw. ist es der "State of the art" wenn man
es mit einen Timer Interrupt löst und eine
Globale Variable hochzählt?
Siehe folgenden Pseudocode:
P.S. Danke für jeden Hinweis!
Timo
//--- Codeanfang:
unsigned int iCounter
Main
{
SetBit(SREG,7); // Generelle Interruptfreigabe
SetBit(TIMSK,1); // Interrupt Timer0 freigegeben
SetBit(PORTB,5); // PortB = High
Wait(500);
ClearBit(PORTB,5); // PortB = Low
}
void Wait(unsinged int iValue)
{
TCNT0=0; // Startwert
TCCR0=1; // Vorteiler (Timer starten)
iCounter=iValue;
while(iCounter){};
TCCR0=0; // Timer stoppen
}
__interrupt void TIMER0_OVERFLOW(void)
{
iCounter--;
}
//--- Codeende
sieht gut aus IMHO, ich mache es jedenfalls auch so und mir ist noch kein "eleganterer" Weg eingefallen [wozu auch, funktioniert ja und in ASM sind das auch nur ein paar Instructions] Lars.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.