mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer mit ATtiny24


Autor: Mc Splanish (mcsplanish)
Datum:

Bewertung
0 lesenswert
nicht 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???

#include <avr/io.h>
#include <avr/interrupt.h>
//#include <avr/sleep.h>
//#include <avr/eeprom.h>
//#include <avr/wdt.h>

volatile uint8_t millisekunden;
volatile uint8_t sekunde;

int main(void){


    // Init PORT A
    PORTA = (1<<PA1);
    DDRA  = 0xff;
   

  // Timer 0 konfigurieren
  TCCR0A |= (1<<WGM01); // CTC Modus (Clear Timer on compare Match)
  TCCR0B |= (1<<CS01); // Prescaler 8
  OCR0A = 125-1; // ((1000000/8)/1000) = 125 Vergleichswert
 
  // Compare Interrupt erlauben
  TIMSK0 |= (1<<OCIE0A);
 
  // Global Interrupts aktivieren
  sei();
 
 
     while(1){

      }
    return 0;
        

}

/*
Der Compare Interrupt Handler 
wird aufgerufen, wenn 
TCNT0 = OCR0A = 125-1 
ist (125 Schritte), d.h. genau alle 1 ms
*/
ISR(TIMER0_COMPA_vect)
{
  millisekunden++;
  if(millisekunden == 100)
  {
    sekunde++;
    millisekunden = 0;
    if(sekunde == 10)
    {
      PORTA ^= (1<<PA1);
      sekunde = 0;
    }
  }

}

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Evtl weil TIM0_COMPA_vect die richtige Bezeichnung für den Vektor wäre ?
;-)

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LED falsch angeschlossen z.B. verkehrt herum? Das kannst du 
ausschliessen, wenn ein einfacheres Programm die LED mit 1 Hz blinken 
lässt:
#define F_CPU 1000000L // Werkseinstellung interne Taktquelle
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
  // Init PORT A
  DDRA  = (1<<PA1); // Richtung I/O: Ausgabe
  PORTA = (1<<PA1); // Startwert

  while(1) // Für immer
  {
    PORTA ^= (1<<PA1); // Umschalten
    _delay_ms(500);    // Warten
  }
}

Autor: Mc Splanish (mcsplanish)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So jetzt geh ich ne Runde ausflippen ;)

TIM0 - Dat war alles! Hab ich net gewusst ;(

VIIEEEEELEN DANK!

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kuckst Du unter WinAVR-xxx\avr\include\avr nach iotn24.h, dort findest 
Du einen Verweis nach iotnx4.h und dort drin sind die Vektoren mit 
richtigem Namen verzeichnet. Ansonsten gibt's auch noch irgendwo 'ne 
Dokumentation dazu :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.