Re: Problem gelöst Kategorie: Programmierung (von AndrĂ© H. - 26.03.2007 0:04) | ||
Als Antwort auf Problem gelöst von Franke - 15.03.2007 7:59 | ||
| ||
Hallo Franke, > Wie mache ich das ?? > würde gern einen Timer programmieren, komme aber nicht zurecht. > > Die Funktion läuft seit gestern, nachdem ich in einem anderen > THread was geändert habe !!! Ein benutzerdefinierter Timer ist etwas ganz einfaches. Die erst Frage wäre, wie genau dieser sein mu�. Wenn als Genauigkeit 1sec. reicht, kann man folgendes verwenden: int timer, endwert; // max. 32767 Sekunden, für mehr => long byte second; ... // --- Initialisierung timer=0; second=system.second(); endwert=300;//300Sekunden=5Min. // --- do { if second!=system.second() { timer=timer+1; second=system.second(); } } while timer<endwert ... Wenn es genauer sein mu�, kann man auch den System-Timer verwenden. Allerdings mu� man hier beachten, da� dieser einen Tick zu schnell läuft. (Eine Minute sind 60096ms) long timer, warten; warten=300480; //= 300.000 echte ms, bzw. 5 Min. timer=system.timer(); wait system.timer()-timer>=warten; ... Man kann das in eine Funktion packen, um den 0,16% zu schnell laufenden Timer zu kompensieren. Die RTC der CC2 läuft allerdings genau, basiert aber auf der ms-Timer-Interrupt-Routine. Das OS korrigiert die CC2-Zeit alle 5 Sekunden um 8ms, damit diese exakt läuft. MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: |