Forum: Mikrocontroller und Digitale Elektronik PWM Signal auswerten


von Karl Carlo (Gast)


Angehängte Dateien:

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?

von Karl Carlo (Gast)


Lesenswert?

Kann niemand ein Fehler finden?

von Jörg X. (Gast)


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 ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.