Timer mit ATtiny24

OP #1883661
Lesenswert?
• ▲
▼
Hallo zusammen,

ich mach jetzt hier schon stundenlang an einem einfachen Timer rum. Kann 
mir einer von euch sagen, warum die LED nicht toggelt???

1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3
//#include <avr/sleep.h>
4
//#include <avr/eeprom.h>
5
//#include <avr/wdt.h>
6

7
volatile uint8_t millisekunden;
8
volatile uint8_t sekunde;
9

10
int main(void){
11

12

13
    // Init PORT A
14
    PORTA = (1<<PA1);
15
    DDRA  = 0xff;
16
   
17

18
  // Timer 0 konfigurieren
19
  TCCR0A |= (1<<WGM01); // CTC Modus (Clear Timer on compare Match)
20
  TCCR0B |= (1<<CS01); // Prescaler 8
21
  OCR0A = 125-1; // ((1000000/8)/1000) = 125 Vergleichswert
22
 
23
  // Compare Interrupt erlauben
24
  TIMSK0 |= (1<<OCIE0A);
25
 
26
  // Global Interrupts aktivieren
27
  sei();
28
 
29
 
30
     while(1){
31

32
      }
33
    return 0;
34
        
35

36
}
37

38
/*
39
Der Compare Interrupt Handler 
40
wird aufgerufen, wenn 
41
TCNT0 = OCR0A = 125-1 
42
ist (125 Schritte), d.h. genau alle 1 ms
43
*/
44
ISR(TIMER0_COMPA_vect)
45
{
46
  millisekunden++;
47
  if(millisekunden == 100)
48
  {
49
    sekunde++;
50
    millisekunden = 0;
51
    if(sekunde == 10)
52
    {
53
      PORTA ^= (1<<PA1);
54
      sekunde = 0;
55
    }
56
  }
57

58
}
Persönliche Seite #1883691
Lesenswert?
• ▲
▼
LED falsch angeschlossen z.B. verkehrt herum? Das kannst du 
ausschliessen, wenn ein einfacheres Programm die LED mit 1 Hz blinken 
lässt:
1
#define F_CPU 1000000L // Werkseinstellung interne Taktquelle
2
#include <avr/io.h>
3
#include <util/delay.h>
4

5
int main(void)
6
{
7
  // Init PORT A
8
  DDRA  = (1<<PA1); // Richtung I/O: Ausgabe
9
  PORTA = (1<<PA1); // Startwert
10

11
  while(1) // Für immer
12
  {
13
    PORTA ^= (1<<PA1); // Umschalten
14
    _delay_ms(500);    // Warten
15
  }
16
}

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.