www.mikrocontroller.net

Forum: Projekte & Code Einfacher Scheduler und Timer in C++ für ATMega


Autor: S. Seegel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

auf dem Speiseplan steht eine Implementierung eines Schedulers (um 
automatisch mehrere Zweige aus der main-loop verarbeiten zu lassen) und 
ein Timer. Das ganze ist objektorientiert gehalten und in C++ 
geschrieben.
Das ganze ist so angelegt dass es leicht in ein Projekt eingebunden 
kann.

Hier ein Beispiel:
#include "scheduler.h"
#include "timer.h"

class Task1: public SchedulerItem
{
  private:
    Timer timer; //this expands our scheduleritem to a timer
    
  protected:
    void Execute(void); //this method is called from the mainloop (indirectly)
  
  public:
    Task1(void);
};

Task1::Task1(void)
{
  //Constructor...
  DDRB |= 1<<PB7; //just for debugging...
  timer.SetTime(1000); //flag timer in 1000 ms
}

void Task1::Execute(void)
{
  if (timer.IsFlagged())
  {
    PORTB ^= 1<<PB7; //just for debugging...
    timer.SetTime(1000); //flag the timer in 1000 ms
  }
  //...other things to do within this task...
}

Task1 task1;

Das angehängt Testprogramm lässt einen Pin jede Sekunde auf einem Mega64 
umschalten.

Schönen Gruß
Stefan

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.