Duty Cycle berechnen

Gast #2150630
Lesenswert?
• ▲
▼
Hallo! Hoffe, ich bin hier richtig.

Ich habe ein Programm geschrieben, mit dem ich die Pulse und auch die 
Periode eines PWM-Signals (von einem SMT160-Temperatursensor) messen 
kann. Ich habe das mit einem Counter realisiert. Es funktioniert auch 
ziemlich gut, nur frage ich mich, ob ich vielleicht einige wenige (viele 
können es nicht sein, da die Temperatur schon recht genau ist) Takte 
irgendwie verliere, z.B. beim Wechsel in die while-Schleife, oder ob das 
wirklich alle sind, die ich da zähle.

if (atoi(argval[1]) == 1)
  {
    PORTC |= (1<<PC3);
    cli();
    loop_until_bit_is_clear(PIND,PD2);
    loop_until_bit_is_set(PIND,PD2);
    while( (PIND & (1<<PD2)) )
    {
    flankep++;  //hochzählen so lange positive flanke
    }
    while( !(PIND & (1<<PD2)) )
    {
    flanken++; //hochzählen solange negative flanke
    }
    sei();
    periode = flankep + flanken;

    sprintf(zeichenpuffer, "%s: P %u N %u T %u", "\n\rAN", flankep, 
flanken, periode);
  } else {
    PORTC &= ~(1<<PC3);
    strcpy(zeichenpuffer, "\n\r AUS");
  }

Hat jemand vielleicht noch eine bessere/genauere/schlauere Lösung dazu?

Würd mich freuen!
Gast #2150684
Lesenswert?
• ▲
▼
ah sorry! ich benutz einen atmega 168! der kann sowas, ja, aber ich hab 
die funktion noch nicht so ganz durchblickt. wenn du also dafür nen 
verständliches beispiel hast, wärs cool. die beispiele, die ich bisher 
zum input capture gefunden habe, haben mir noch nicht so geholfen, aber 
ich bin da noch dran.

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.