Hallo

Für uns "alte Hasen" scheint das einfach, für Einsteiger ist es aber möglicherweise verwirrend. Die Frage ist: Wo steigt man ein beim Erklären?

Die Warnung beim Kompilieren wird von folgendem Eintrag in der Datei asuro.h verursacht:

#include <avr/signal.h>

signal.h wurde früher von WinAVR verwendet und ist in der aktuellen Version durch interrupt.h ersetzt worden. Deshalb muss die Zeile nun so aussehen:

#include <avr/interrupt.h>

In der orginalen CD-Version der asuro-Library verwendet sleep() einen 72kHz-Timer zur Zeitmessung. Deshalb dauert die kleinste Verzögerung von sleep(1) genau 1/72000 Sekunden, sleep(72) dauert entsprechend 1/1000 Sekunde. Eine Verzögerung von einer Sekunde erreicht man durch mehrfachen Aufruf von sleep() in einer Schleife:

int i;
for(i=0; i<1000; i++) sleep(72);

Was mich stört: Du scheinst du Version 2.8 der Library zu verwenden. Warum tritt trotzdem die Warnung auf? Ich dachte, die aktuelle Lib würde interrupt.h verwenden. Möglicherweise ist die Library nicht richtig installiert.

Alle Libs nach ca. V2.1 sollten auch die Funktion Msleep() kennen. Diese verzögert um 1/1000 Sekunde und möchte einen 16-Bit-Parameter. Damit sind Verzögerungen bis ca. 65 Sekunden machbar.

Gruß

mic