www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Blinker mit Herzrhythmusstörungen


Autor: Hegy (Gast)
Datum:
Angehängte Dateien:
  • preview image for t.jpg
    t.jpg
    94,9 KB, 70 Downloads

Bewertung
0 lesenswert
nicht lesenswert
Hi,

wieso blinkt ein einfacher Blinker (invertieren eines Ports mit Timer)
nicht gleichmäßig? Im Anhang ein Timing-Diagramm, die obere rote Kurve
ist das Soll-Timing, unten drunter (blau) das Ist-Timing. Wieso blinkts
dann nicht ordentlich. Der Code:
#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>

static volatile unsigned char bytecount;
static volatile unsigned int waittime;
static volatile unsigned char tcnt0; // Reload-Wert f. TCNT0 (Int.
Timer 0 Overflow)


void sleep(unsigned long wait)
{
  // Timer 0, 8-Bit Initialisierung
  tcnt0 = 227;
  TCNT0 = tcnt0; 
  waittime = wait;
  TCCR0B = (1<<CS02); // Timer 0, Prescaler = 256
  //TIFR0 = (1<<TOV0);
  
  do
    TIMSK0 = (1<<TOIE0); // Timer Overflow Interrupt Enable 0
einschalten
  while(waittime > 0);

  TIMSK0 = 0;
  TCCR0B &= ~((1<<CS00) | (1<<CS01) | (1<<CS02)); // Timer Stop
}


int main(void)
{
  DDRB = 0x07; // Port PB0, PB1, PB2 Output
  PORTB = 0xFF; // Port PB0, PB1 aus

  TIMSK0 &= ~(1<<TOIE0); // Timer Overflow Interrupt Enable 0
ausschalten

  sei();

  while(1)
  {
    PORTB = ~PORTB;
    sleep(500);
  }
  return 0;
}


// Timer 0 Overflow
ISR(SIG_OVERFLOW0)
{
  waittime--;
  TCNT0 = tcnt0;
}

Der Watchdog ist lt. Fuse-Bits aus.

 - Hegy

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.