Hilfe bzeüglich Timer & LED

Gast #4019939
Lesenswert?

Hallo @ All,

Ich möchte gerne einen Timer programmieren (8bit), der nach einem 
Overflow (255 Takten) eine LED einschaltet, nach einem weiteren Overflow 
die LED wieder ausmacht (Und dann immer so weiter^^)

Mein Code sieht so aus:
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4
 
5
int main(void)
6
{
7
  // Timer 0 konfigurieren
8
  TCCR0 = (1<<CS01) // Prescaler 8
9
 
10
  // Overflow Interrupt erlauben
11
  TIMSK |= (1<<TOIE0);
12
 
13
  // Global Interrupts aktivieren
14
  sei();
15

16
DDRC=3; // damit sind dann PC0 und PC1 Ausgänge
17
 
18
  while(1)
19

20
  {
21

22
  PORTC = 11; //0. bit im Port C setzen
23

24
    PORTC = 0; //0. bit im Port C löschen
25

26
  }
27
}
28
 
29
/*
30
Der Overflow Interrupt Handler
31
wird aufgerufen, wenn TCNT0 von
32
255 auf 0 wechselt (256 Schritte),
33
d.h. ca. alle 2 ms
34
*/
35
#ifndef TIMER0_OVF_vect
36
// Für ältere WinAVR Versionen z.B. WinAVR-20071221 
37
#define TIMER0_OVF_vect TIMER0_OVF0_vect
38
#endif
39
 
40
ISR (TIMER0_OVF_vect)
41
{
42
  /* Interrupt Aktion alle
43
  (1000000/8)/256 Hz = 488,28125 Hz
44
  bzw.
45
  1/488,28125 s = 2,048 ms  
46
  */
47
}


Kann mir jemand weiterhelfen ?
Da ich noch ziemlich neu bin, habe ich den Quellcode kopiert, eingefügt 
und habe nur "DDRC=3" hinzugefügt und die Ports an und ausgeschaltet.

Grüße,

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren