Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: system.timer() - Wert explizit setzen ? Kategorie: Programmierung (von André H. - 15.10.2006 18:12)
Als Antwort auf system.timer() - Wert explizit setzen ? von JörgC - 7.10.2006 13:10
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0, OSOPT V3.1
Hallo Jörg,

> ich bin gerade dabei, bei einem grösserem Projekt einen Fehler einzukreisen, der
> sich durch einen Watchdog-Reset nach ca. 20..25 Tagen äussert.
>
> Meine Vermutung nach habe ich ein Problem mit meinen Timern. Die Hinweise zu
> dem Thema (André, Krassos, und allen anderen "Aktivisten" hier im Forum an dieser
> Stelle vielen Dank) habe ich bereits gelesen, und m.E. auch berücksichtigt.
>
> Kennt jemand eine Möglichkeit, den systm.timer long value explizit zu modifizieren?
> Bis zu einem �berlauf zu warten, ist doch recht langwierig, deswegen möchte ich den
> System-Timer auf spezielle Werte zu Testzwecken setzen.

Es ist eigentlich nicht vorgesehen, den (freilaufenden) Timer im Programm ändern zu können.
Aber mit folgender Routine sollte es möglich sein:
//-------------------------------------
  inline function settimer (long timer)
//-------------------------------------
{
  inline vmcodes.VM_STORE_SYSVAR_LONG | (vmcodes.LSYSVAR_TIMER_MS  << 8);
}

Allerdings kann Dir hier evtl. der Timer-Interrupt dazwischenfunken.
Daher würde ich die Funktion so aufrufen:

 yield;
 timerold=system.timer();
 wait system.timer()<>timerold;
 settimer(wert);

Alternativ kannst Du auch den Timerwert zurücklesen, und den Timer
so oft setzen, bis ein der gewünschte Wert eingestellt ist.

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:

Re: system.timer() - Wert explizit setzen ? (von JörgC - 15.10.2006 20:55)