Timer in Mikrocontroller



  • Hallo.

    Ich mal wieder 😉

    Ich hab einen Controller M32C/83 M30833FJFP (Mitsubishi) der unter ANSI C
    programmiert werden kann. In diesem brauche ich ca 40 Timer.
    Die Timer sollten startbar sein, wenn ich es benötige und sich zurückmelden,
    wenn die Zeit abgelaufen ist.
    Mein Problem ist im Moment, das ein Auslesen der Uhrzeit unheilich viel
    Leisutng kostet. Und was anderes fällt mich im Moment nicht ein.
    Das Programm läuft in einer while-Schleife für immer oder bis kein Strom
    mehr da ist.

    Die Laufzeit eines Durchlaufs der While-Schliefe zu messen und dann immer eine
    Zahl zu addieren ist auch nicht gut, das der Programmcode noch sehr oft umprogrammiert
    oder optimiert wird.

    Kennt sich wer mit dem Prozessor aus, oder hat wer ne Idee, wie ich das über die
    Uhrzeit doch regeln könnte, aber nicht in jedem Durchlauf die Zeit auslese?

    Und wie würde die Funktion für den Timer aussehn?
    Danke für ein paar Tipps 😉



  • ^^
    starte einen hardware-timer mit der nötigen frequenz, lass ihn periodisch interrupts auslösen und damit deine software-timer weitertickern.
    🙂



  • @Krumnix: Die Beschreibung was du willst ist imho total ungenau. Wie brauchst du die 40 Timer? Wie sollen sie "sich zurückmelden"?



  • Naja, ich muss ja irgendwie dem Timer sagen, starte jetzt.
    Dann zählt es seine Zeit irgendwie zusammen.
    Und wenn wer fertig ist, sollte er sich zurückmelden, das die Zeit abgelaufen
    ist.

    Also z.B. real Startwert, Zeitwert;
    int Timer_Starten, Timer_Abgelaufen.

    Jedoch ist das Problem ja, das die Zeiten sich durch unterschiedliche
    Programmaufrufe ändern können.

    Interups sind alle für RS-232 und Speicheranbindungen belegt. Das Ding hat
    soviel ich weiß nix mehr frei -.-


Anmelden zum Antworten