Hallo allerseits,
ich versuche seit geraumer Zeit auf meinem Atmega16 mittel des timer0 eine Wartefunktion zu implementieren.
Meine Funktion timer_set(unsigned short ms) erechnet aus dem übergebenem Parameter ms, wie oft der voreingestellte Timer durchlaufen werden muss. In meiner SIGNAL ( SIG_OVERFLOW0 ) soll aber kein spezieller Code aufgeführt werden, ausser den timer stoppen wenn er fertig ist.
Der Timer selbst funktioniert gut aber ein Aufruf wie:
um eine beschleunigung beider Motoren A und B zu erzeugen, funktioniert aber nicht. Ich vermute, dass der Timer gestartet wird, aber der µC parallel dazu den Rest ausführt.Code:for (i = 160; i > 0; i--) { pwm ( A | B, i); timer_run(100); }
Gibt es eine Möglichkeit so eine Wartefunktion zu implementieren, ohne zb Zeiger auf Funktionen, oder eine while-Schleife mit "nop", zu benutzen?
Denn ein _delay_ms(xyz) funktioniert, aber der µC führt Befehle erst nach dem beenden von _delay_ms aus, selbst Interrupts.
Vielleicht gibts ja eine bessere Lösung?!
mfg
Martin







Zitieren

Lesezeichen