c't

c't-Projekte - Mailinglisten


[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

RE: [ct-bot]Patch für Fehler in delay-Funktion

Absender: Timo Sandmann
Datum: Mo, 21.08.2006 23:11:38
In-reply-to: <44EA0F04.20404@xxxxxx>


Achim Pankalla schrieb:

Hi,

> hallo timo,
> ...
> aber dein vorschlag für die warteschleife macht mir etwas 
> bauchschmerzen in einen solchen system wie den bot.
> du wartest da auf einen exakten zeitwert. der prozessor hat 
> zwar eine zykluszeit von 179us, wenn ich mich nicht täusche 

Oh nein, ganz so langsam sind wir dann doch nicht, der Prozessor hat eine
Zykluszeit von 62,5 ns, aber alle 178 µs wird derzeit die timer-isr
aufgerufen. ;-)

> und das müsste zwar für die nops bei weiten reichen, aber man 
> darf die isr-routinen nicht vergessen, die ja aktiviert 
> bleiben. diese werden doch für die timer und das 
> aktualisieren der sensor-werte (variablen) benutzt. sollte 
> dadurch der exakte zweitwert von den timern nicht bestimmt 
> werden und die millisekunde übersprungen werden, so wird 
> delay-fkt nie enden oder habe ich ein denkfehler zu späten 
> stunde?? deshalb habe ich auch diese zweistufige schleife gewählt.

Ich denke zwar nicht, dass das o.a. Problem auftritt, weil Operationen, die
großer Verzögerungen hervorrufen, nichts in einer isr zu suchen haben, aber
es spricht natürlich nichts dagegen, auf kleiner / größer zu prüfen anstatt
auf ungleich, das stimmt. Der eine findet es mit zwei Schleifen
übersichtlicher und der andere mit einer Oder-Verknüpfung, das kann man ja
letztlich sehen, wie man möchte. ;) Ich vermute mal, im jetzigen Code ist
einfach && und || vertauscht, daher meine ich, man bräuchte nur das zu
ändern. 

Viele Grüße,
Timo