Atmega 328P LED will nicht richtig über Interrupts blinken

Gast #3387570
Liebe Genies,

ich versuch schon den ganzen tag simpelst eine LED über interrupts 
blinken zu lassen. Ich habe gefühlt 100 beiträge gelesen, finde dennoch 
meinen Fehler nicht. der Atmega 328 lauft auf einer platine auf 20MHz.
Vielleicht findet ja einer von euch meine(n) Fehler?
tausend Dank im Vorraus

Markus



#include <avr/io.h>
#include <asf.h>
#include <math.h>
#include <stdlib.h>
#ifndef F_CPU
#define F_CPU 20000000UL
#endif
#include <util/delay.h>
#include <avr/interrupt.h>


void servo_init(void);

#define SERVOPIN 1
#define SERVOPORT PORTD
#define DDRSERVO DDRD

int t=0;


ISR(TIMER0_COMPA_vect)        //interrupt
  {

    t++;

  }

void servo_init(void)
{
  TIMSK0|=(1<<OCIE0A);                 //interrupts
  TCCR0B |= (1<<CS00);                 //Prescale=1,
  TCCR0A |= (1<<WGM01);                 // CTC mode
  OCR0A = 199;                   //alle 10µs ein IRQ 0,00001s
  DDRSERVO|=(1<<SERVOPIN);               //LED Pin als ausgang

}

int main (void)
{


  servo_init();
  sei ();                //iknterrups an

  while(1)
  {

  if (t<20000)SERVOPORT|=(1<<SERVOPIN);  //bis zum 20000. durchlaufen 
des Interrupts LED AN (200ms)
  else SERVOPORT |=~(0<<SERVOPIN);  //ab dann LED AUS
  if(t>40000) t=0;      // bei 40000. interruptdurchlauf t zurücksetzen 
(insg. 400ms)

    }
  }
Gast
Markus schrieb:

> Und genau des versteh Ich Net. Warum des?
> Vilen dank schonmal. Genau danach sahs aus und Ich kapier Net warum.


Zwei Buchempfehlungen:

Kernighan & Ritchie: Programmieren in C

Duden: Die deutsche Rechtschreibung
Gast
die int wars...
ich idiot habs im Internet gesucht wie groß ne int is und da hab ichs 
anscheinend falsch aus der Tabelle gelesen.
Vielen dank an die Schreiber.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.