mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM Signal auswerten


Autor: Karl Carlo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Ich möchte ein Fahrtenregler bauen.
Bin grade dabei mit einem ATTiny84 das Signal vom Empfänger auszuwerten. 
Ich möchte nur das Signal von einem Kanal auswerten!

Ich benutze dafür Timer1 mit Input Capture. Der selbe Timer soll nachher 
für die PWM-Erzeugung zur Ansteuerung des Motors benutzt werden. Deshalb 
läuft der Timer im 8Bit FastPWM Mode.
Im Moment lasse ich mir die gemessene Signaldauer des Empfängersignals 
auf einem Display ausgeben, und dabei fällt auf das die Dauer trotz VZ1 
Filter ziemlich schwankt. Mit Schwankungen ~+10.
Ich kann mir nicht erklären woher das kommt.
Der Controller läuft mit internen 8MHz RC Oz.

Hab ich irgendwo einen logischen Fehler?

Autor: Karl Carlo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann niemand ein Fehler finden?

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann keine Fehler entdecken, die sich auf die Schwankungen auswirken 
würden, aber ;) :
 - dein Error-Handling funktioniert so wahrscheinlich nicht: bei "//wenn 
das signal wegfällt" musst du die ganze Messung neustarten oder 
abbrechen (können).
 Außerdem sind 8 Overflows nur haarscharf über 2ms:
(und 2,5ms High-Pegel sind wohl durchaus bei manchen Empfängern möglich)
und es kann fast 20ms bis zur ersten Flanke dauern -- das ist wichtig, 
falls "signal_calc()" öfter als 50 Mal pro Sekunde aufgerufen wird.
 - ein Overflow bei einem 8-Bit-Timer kommt nach 256 (0x100) Schritten:
>> erg = (overflow * 0xff) + end - begin; //Signal ausrechnen
ist falsch
>  erg = (overflow * 256) + end - begin;
ist besser
 - die Deklarationen der globalen Variablen fehlt im geposteten Code 
(wird aber korrekt sein (volatile o.ä.), da du Ergebnisse bekommst)

Sind Schwankungen um +-10 wirklich so schlimm?
Das wären doch nur 80 AVR-Takte:
10 * Prescaler *1/8MHz = 1e-5 = 10µs
Das Servosignal dauert AFAIK 1-2ms, was bedeutet, dass du Schwankungen 
um 1% hast - bist du sicher, dass das nicht 'normal' ist (Toleranzen 
beim Empfänger etc.)?
Abgesehen davon stimmt der Absolutwert bestimmt nicht (das 
attiny24/44/84 Datenblatt, das ich hier hab, sagt "Factory Calibration 
Accuracy +-10%", bei 3V und das sowohl Vcc also auch 
Temperatur-abhängig).

genug der besserwisserei ;)
hth. Jörg
ps.: ich arbeite noch an einem Gegenentwurf ;)

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.