- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 3 von 3

Thema: Vorschläge zum schalten von mehreren Ausgängen in C

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.05.2005
    Beiträge
    14

    Vorschläge zum schalten von mehreren Ausgängen in C

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Guten Morgen,

    habe eine Frage bezüglich eines Programms in C zum schalten von ca. 5-10 Kanälen in definierten Abständen.

    Es soll ein Prgramm entstehen für einen Controller z.b ATMega8 ect., welcher durch vorgegebene Zahlen/Variablen, die Ausgänge in bestimmten Zeitabständen aus und wieder einschaltet.

    Das Problem ist, das alle Ausgänge völlig unabhängig laufen.
    Beispiel wäre z.b Kanal 1, soll für 20ms einschalten, dann für 1000ms eine Pause machen und wieder für 30ms oder ähnlich einschalten usw. Alle Ausgänge werden andere Zeitvorgaben bekommen.


    Ich möchte selbstverständlich keinen fertigen Code oder sowas bekommen, sondern viel eher vielleicht ein Paar Vorschläge, evt. hat der eine oder andere sowas schon gelöst.

    Meine Idee wäre natürlich die Timer/Counter zu benutzen, aber viele sind ja in den kleinen Megas nicht verfügbar und somit eine nicht ganz einfache Aufgabe. Denn, hätte ich für jeden Kanal einen eigenen Timer, würde die Sache um einiges einfacher ausfallen.

    Wäre um jede Antwort Dankbar!

    Gruß

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Einen Timer mit z.B. 5msec takten lassen, für jeden Ausgang einen Ablauf erstellen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.693

    Re: Vorschläge zum schalten von mehreren Ausgängen in C

    Zitat Zitat von killma$ter
    ... Ausgänge in bestimmten Zeitabständen ... 30ms oder ähnlich ... Timer/Counter ... aber viele sind ja in den kleinen Megas nicht verfügbar ...
    Also: Millisekunden sind bei den Controllern ne halbe Ewigkeit. Es reicht da EIN Timer der eine interne Uhr betreibt - ich habe bei einem 20 MHz-Quarz einen 50 µs-Timer. Damit zähle ich in der zugehörigen ISR bis 20000 (zwanzigtausend) und fange dann neu an zu zählen - sprich alle Sekunde. Es ist mit uint16_t möglich bis 60000 zu zählen, drei Sekunden.

    Im übergeordneten Programm kann ich mich auf diese Boardzeit berufen. Allenfalls ist es sinnvoll, neben der Timer-Zeit für den jeweils aktuellen Fall noch "altzeit" und "neuzeit" festzuhalten (oder andere Variante), um den Überlauf von einer auf die andere Sekunde mitzukriegen.
    Ciao sagt der JoeamBerg

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress