## 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: Achim Pankalla
Datum: Mo, 21.08.2006 21:52:57
In-reply-to: <001601c6c2bf$ac1f1ca0$1401a8c0@user08>
References: <001601c6c2bf$ac1f1ca0$1401a8c0@user08>

    hallo timo,

`klar hast du recht, das die fkt. wirklich eine verzögerung erzeugte und` `zwar dann wenn durch den übergabewert ein überlauf in die nächste` `sekunde erzeugt wurde. ausserdem waren die werte die im bisherigen` `quellkode benutzt wurden nur sehr klein, so dass dies vielleicht auch` `nicht viel ausmachte. mir war es nur bei meiner kalibrierungsfunktion` `aufgefallen.` `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 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.`

    gruss
       achim

    Timo Sandmann schrieb:

>     Hallo,

> ``

> >     aus zwei gründen ging die delay-fkt nicht.

> > `1) die warte-schleife musste auf grund der bedingungen immer` `sofort abbrechen!` ``

>     Naja das stimmt so nicht ganz, aber die Bedingung ist dort in der Tat falsch
>     (es wird fälschlicher Weise bereits abgebrochen, sobald der Sekunden- _oder_
>     Millisekundenanteil erreicht ist).
>     Ich würde die Bedingung einfach auf

>     while ((s_stop != timer_get_s()) || (ms_stop != timer_get_ms())){asm
>     volatile("nop");}

>     ändern (|| anstatt &&).

> ``

> >     2) die timer-isr wird zu spät initialisiert.

> > ``

>     Das ist richtig, das Initialisieren muss natürlich vor der ersten Verwendung
>     von delay() passieren.

>     Viele Grüße,
>     Timo

>     _______________________________________________
>     ct-bot-entwickler Mailingliste
>     ct-bot-entwickler@xxxxxxxxxxxxxxxxx
>     http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler

> ``

- Antworten:
  - RE: [ct-bot]Patch für Fehler in delay-Funktion
    - From: Timo Sandmann

- Referenzen:
  - RE: [ct-bot]Patch für Fehler in delay-Funktion
    - From: Timo Sandmann

- Voriger (Datum): [ct-bot] Nicht-Lineare Kennlinie der Lichtsensoren (?), Ralph Wetzel
- Nächster (Datum): RE: [ct-bot]Patch für Fehler in delay-Funktion, Timo Sandmann
- Voriger (Thread): RE: [ct-bot]Patch für Fehler in delay-Funktion, Timo Sandmann
- Nächster (Thread): RE: [ct-bot]Patch für Fehler in delay-Funktion, Timo Sandmann
- Indizes:
  - Datum
  - Thread