Timer Kategorie: Programmierung (von ChristianS. - 23.02.2004 20:37) | ||
| ||
Hallo, ich versuche einen Timer zu programmieren, der eine bestimmte Anzahl von Sekunden warten soll. Ich habe eine Funktion geschrieben, die dieses macht , nur sind dann während der Wartezeit keine anderen Aktionen (z.B. Abfragen von Ports) möglich. function ZEIT(byte sekunden) returns byte /*******************************************************/ /** Wartezeit in Sekunden, maximal 3600s (60min) */ /*******************************************************/ { byte akt_sec, akt_min, sec, min; sec= sekunden%60; // Anteil Sekunden min= sekunden/60; //Anteil Minuten akt_min=system.minute(); //aktuelle Minute akt_sec=system.second(); //aktuelle Sekunde while min > (system.minute() - akt_min); while sec > (system.second() - akt_sec); return -1; } Deshalb habe ich ins Forum geschaut, und bin auf einen "Muster-Thread" gesto�en, den ich dann etwas geändert habe. const sekunden=5; byte flag, timerflag, tim, sekunde; thread zeit2 { timerflag=0xFF; tim=0; sekunde=system.second(); while tim wait sekunde!=system.second(); sekunde=system.second(); tim=tim+1; } timerflag=0; reset; } ...aber irgendwie läuft der Timer nur ein mal. Wie kann ich diesen öfter starten? mein Test-Hauptprogamm sieht so aus... thread main { stports.init(); lcdext.init(); lcdext.clear(); run waithost; run zeit2; loop { lcdext.home(); lcdext.zahl3(timerflag); if timerflag==0 { lcdext.clear(); lcdext.print("...ende"); } } } Wenn mir einer unter die Arme greifen könnte, wäre ich dankbar, da ich Anfänger bin und mich noch ziemlich schwer mit der Programmiererei tue! Vielen Dank, ChristianS. | ||
Antwort schreiben Antworten: Re: Timer (von Guido - 25.02.2004 19:35) Re: Timer (von Martin Binder - 25.02.2004 17:24) Re: Timer (von ChristianS. - 26.02.2004 22:35) Re: Timer (von Hansi - 21.04.2004 14:28) |