Timer Frage

andy999mueller

Neues Mitglied
02. Feb. 2008
6
0
0
Sprachen
Hallo,

wie gehe ich vor, wenn ich einfach einen Timer starten will und beim Ablauf des Timers eine LED leuchten lassen will:

Pseudocodemäßig könnte es etwa so aussehen:

void main(void) {
while(1) {
//Timermodus einstellen
//Timer starten
//Timerflag abfragen
//wenn Timerflag gesetzt, dann über PortX eine LED ein und ausschalten
}
}


es wäre echt super wenn ihr mir helfen könntet



Mfg Andy
 
Hallo Andy,

das ist schon soweit richtig, wie du das machen möchtest. Besser finde ich es, wenn du den TimerOverflowInterrupt oder den TimerCompareInterrupt des entsprechenden Timers freigibst und die LED dann in der Interruptroutine schaltest.

Grüße
Dirk
 
Hi,
sorry wenn ich mich jetzt erst wieder melde, war aber ne woche im Urlaub.
Wie würde denn der passende C-Quellcode in etwa aussehen???


Gruß Andy
 
Hallo Andy,

hier mal das Verfahren des InterruptRequestFlag-Pollens am Beispiel des ATtiny2313.

Code:
void inittimer(void);
void initports(void);

void pause(void);

void initports(void)
{
   DDRB = 0x01;     // PB0 ist Ausgang, hier zB. eine LED anschließen
}

void inittimer(void)
{
   TCNT0 = 0        // Timer0 Counter auf 0
   TCCR0B = 0x05;   // Timer0 Start, prescaler 1024 (CS02=1, CS01=0, CS00=1)
}


void pause(void)    // Pause 65ms
{
   while (!(TIFR&0x02)); // solange warten, bis Timer0 Overflow Flag gesetzt ist (TOV0)
                         // Bei 4MHz läuft der Timer alle 65ms über
   TIFR = 0x02;          // Clear interrupt request flag da wir ja nicht aus einer InterrupServiceRoutine "zurückspringen".
}

void main (void)
{
   initports();      // Ports initialisieren
   inittimer();      // Timer initialisieren

   while (1)
   {
      PORTB ^= (1<<PB0);  // PB0 toggeln (LED blink knapp 8 mal in der Sekunde, also nicht so lange hinkucken ;-) )
      pause(); 
   }
}
Ich hoffe, dir konnte das kleine Beispiel weiterhelfen.

Grüße
Dirk
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)