PIC Fahrtregler

OP #1103547
Hi,

ich bin PIC Anfänger und will das Servosignal von einem Empfänger 
"auswerten" und für die Steuerung der PWM nutzen.

Meine Idee ist es mit dem Gateeingang von Timer 1 die Impulsbreite zu 
messen.

Mein Problem ist nur, der Timer 1 hat ja einen 16bit Wert und die ECCP 
Einheit für die PWM hat nur 10bit Wert.

Wie kann ich die gemessene Impulsbreite von 16bit in 10bit "umrechnen"?

Ich verwende den PIC16F684 mit ECCP, er erscheint mir sehr gut geeignet 
für einen Fahrtregler.

Für Tipps und Ansätze wäre ich dankbar.

MfG
Gast
Hi

Den Wert 6 Bit nach rechts schieben?
Sofern bei 2ms die 16 Bit überhaupt voll werden, sonst entsprechend 
weniger verschieben, damit bei MAX auch die 10 Bit genutzt werden.

MfG
Gast
Hi

Dann eben den maximalen Wert mit dem entsprechendem Faktor verrechnen.

Bzw. - da Vollausschlag in Gegenrichtung 1ms ist (Seien sollte), müsste 
der Timer-Wert zuvor noch um den Wert von 1ms reduziert werden, den 
übrigen Rest dann mit X multiplizieren, daß Du auf Deinen Maximalwert 
kommst.
Muß man aber schauen, wie groß die Sprünge sind und ob man damit 'leben' 
kann.

PWM_Wert=(Timer_jetzt - Timer_1ms)x(4096 : (Timer_2ms - Timer_1ms))

Könnte man bestimmt noch kürzen, aber das ist schon etwas her ...

MfG
Gast
Hi

PIC ... hatte ich ja ganz überlesen.

Dann müssen wir das 'schriftlich' erledigen.

Welchen Zählerstand hat der Timer bei Min / Max?
Um es einfach zu machen, wäre z.B. 1024 bei Min und 2048 bei Max als 
Beispiel gut.
Die Differenz wäre 1024 'Ticker'.
Unser PWM müsste also pro 'Ticker' 1 dazu bekommen.

Bei einem Unterschied von 512 müssten wir pro 'Ticker' 2 addieren.

Bei einem Unterschied von 2048 0,5 (wieder schwierig), hier müsste eine 
Rechnung PWM=Ticker:2 angewendet werden.

Bei ungeraderen Brüchen muß entsprechend aufwändig gerechnet werden, 
z.B. SPRUT hat das glaube bei seinem Drehzahl-Messer interessant 
rumgerechnet.
(www.sprut.de)

MfG

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.