Mein Timer funktioniert nicht

OP #268806
Lesenswert?
• ▲
▼
Hi.
Ist gerade mein erster Versuch mit Timern.
Nur aus dem AVR-GCC Tutorial habe ich mir sozusagen folgendes
rausgelesen aber nichts passiert.
Wenn die Frequenz zu  hoch ist sollten die LEDs ja zumindest schwach
leuchten aber tut sich garnix.
Was mach ich falsch?
1
#include <avr/io.h>
2
#include <inttypes.h>
3

4
#include <avr/interrupt.h>
5
#include <avr/signal.h>
6

7

8

9
SIGNAL (SIG_OUTPUT_COMPARE1A)
10
{
11
  //Ereigniss vom Timer
12
    if (PORTB == 0x00)
13
  {
14
    PORTB = 0xFF;
15
  }
16
  else
17
  {
18
    PORTB = 0x00;
19
  }
20

21
}
22

23

24

25
int main(void)
26
{
27

28
  sei();  //Global Interrupt Enabled  
29

30
  //Timer auf 1024 des Taktes setzen
31
  //TCCR0 = 0b00000101;    //Timer/Counter Control Register
32
  TCCR0 = (1<<CS00)|(1<<CS02);
33
  
34
  
35
  DDRB = 0xFF;
36
  PORTB = 0xFF;
37

38

39
  //PORTB=0x00;
40

41
  while(1)
42
  {
43

44

45

46
  }
47
}
OP #268810
Lesenswert?
• ▲
▼
Ah danke das hatte ich überlesen das TIMSK ja für beide also 8bit und
16bit counter gilt.

So nun der fertige Code und so blinkt es ;-)
1
#include <avr/io.h>
2
#include <inttypes.h>
3

4
#include <avr/interrupt.h>
5
#include <avr/signal.h>
6

7

8

9
//SIGNAL (SIG_OUTPUT_COMPARE1A)
10
SIGNAL (SIG_OVERFLOW0)
11
{
12
  //Ereigniss vom Timer
13
  if (PORTB == 0x00)
14
  {
15
    PORTB = 0xFF;
16
  }
17
  else
18
  {
19
    PORTB = 0x00;
20
  }
21

22

23
}
24

25

26

27
int main(void)
28
{
29

30
  sei();  //Global Interrupt Enabled  
31

32
  //Timer auf 1024 des Taktes setzen
33
  //TCCR0 = 0b00000101;    //Timer/Counter Control Register
34
  TCCR0 = (1<<CS00)|(1<<CS02);
35
  
36
  TIMSK = 0b00000010;
37
  
38
  DDRB = 0xFF;
39
  PORTB = 0xFF;
40

41

42
  //PORTB=0x00;
43

44
  while(1)
45
  {
46

47

48

49
  }
50
}

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.