Forum: Mikrocontroller und Digitale Elektronik Drehzahl-Differenzen mit PIC messen


von aerodactyl (Gast)


Lesenswert?

Hallo Leute,

ich möchte mit einem PIC die Drehzahldifferenzen an mehreren Wellen 
messen.
Soweit erst mal kein Problem.

Bei gleicher Drehzahldifferenz z.B. 100 RPM bekomme ich natürlich 
unterschiedliche Differenzwerte, wenn ich bei 1000 / 1100 RPM oder 5000 
/ 5100 RPM mit einem Timer messe.

Wie kann ich gleiche Werte erreichen? Umrechnen auf "echte" RPM mit * 
und 1/x scheidet wegen der Rechenzeit aus. Ebenso "Fast Integer 
Multiplication and Division", da nur der Multiplikator eine Konstante 
ist.

Irgend jemand eine Idee, wie man das umschiffen kann?

Ich beiß mir da jetzt schon den ganzen Tag die Zähne dran aus und komme 
nicht dahinter.


Gruß
Uwe

von Lehrmann M. (ubimbo)


Lesenswert?

aerodactyl schrieb:
> Wie kann ich gleiche Werte erreichen? Umrechnen auf "echte" RPM mit *
> und 1/x scheidet wegen der Rechenzeit aus. Ebenso "Fast Integer
> Multiplication and Division", da nur der Multiplikator eine Konstante
> ist.

Also sorry - die Berechnung ist mit Festkommaarithmektik ein rechter 
Witz. 5000 rpm sind auch nicht viel ...

von aerodactyl (Gast)


Lesenswert?

Ahhh ja,

und was will der Autor mir damit jetzt sagen ????? Ist schon spät, ich 
kann daraus jetzt leider nichts deuten...

von aerodactyl (Gast)


Lesenswert?

Hallo Michael,

ich hoffe du fühlst dich durch meine Äußerung nicht "auf den Schlips 
getreten". Wenn doch, war das nicht meine Absicht und ich entschuldige 
mich bei dir.

Da ich keine float Werte habe und auch nicht brauche, arbeite ich nur 
mit Ganzen Zahlen und somit in der Festkommaarithmetik.

Die Timer-Werte liegen zwischen 50000 und 10000 was ziemlich genau µs 
entspricht.

Wenn ich das auf RPM nach der Formel "RPM = 60000000 *1/Timerwert" 
umrechne, braucht mein PIC (8 MHz) dafür genau 581,5 µs pro Rechnung. 
Und das ist eindeutig zu lange und da liegt mein Problem. Dies muss ich 
irgendwie lösen und hoffe auf einen Ansatz dafür aus euren Reihen.

Salut

Uwe

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Wenn Du nicht die Zeit einer Umdrehung messen würdest, sondern die 
Anzahl der Drehungen pro Sekunde, hättest Du die Division gespart, denn 
Du willst ja die Differenz messen.

Bei 5000 RPM braucht eine Umdrehung ca. 11000us. Da reicht doch die 
Rechenzeit von ca. 580us aus, um den Wert umzurechnen.

Evtl. mußt Du etwas ranklotzen und einen schnellen PIC nehmen. 20MHz 
sollten immer gehen, evtl. gibt es auch 40MHz-Typen bei den einfachen 
PICs.
Oder mal einen kleinen dsPIC33F nehmen, da geht noch mehr 
Rechenleistung.

von usuru (Gast)


Lesenswert?

Selbst die einfachen PICs können meist schon 20 MHz (wenn es nicht 
gerade ein 16F84 ist). Viele der neueren kleinen PICs können sogar 32 
MHz, manche können das per PLL soagar ohne Quarz.

von aerodactyl (Gast)


Lesenswert?

Hallo zusammen,

mein CCS Copiler kann die ganz neuen 16er PIC's mit internen 32 MHz 
nicht und ich möchte mir den Neukauf sparen.
Wenn ich einen Quarz oder Resonator nehme, fehlen mir wieder die 2 
Pinne.....

Die Idee, auf eine feste Zeit zu messen, ist nicht schlecht, leider geht 
das aus Zeitgründen nicht.

Kommt man dem Problem ggf. mit Kompensationswerten aus einem Array, 
welches man hinterlegt, bei? Werte dann Speed-Abhängig aus dem Array 
holen und dann verrechnen?

Hmmmm, nicht so einfach, das Ganze.....

Gruß

Uwe

von usuru (Gast)


Lesenswert?

> mein CCS Copiler kann die ganz neuen 16er PIC's mit internen 32 MHz
> nicht und ich möchte mir den Neukauf sparen.

http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1002&mid=10&lang=en&pageId=74

Kennst Du diese Seite? Links oben auf "parametric search", dann kannst 
Du nach 16 oder 32 MHz suchen, dass "search" dann "detail", und 
vergleichen, ob was für Deinen Compiler dabei ist.

von aerodactyl (Gast)


Lesenswert?

Hallo usuru,

klar kenne ich die Seite und ich hatte das auch schon geprüft. Mein 
Compiler kann leider nur die Typen bis 8 MHz intern.

Gruß

Uwe

von U.R. Schmitt (Gast)


Lesenswert?

Wie oft musst du diese Differenz pro Sekunde berechnen? Wie wird dieser 
Differenzwert dann weiterverarbeitet?

von tt2t (Gast)


Lesenswert?

> Mein Compiler kann leider nur die Typen bis 8 MHz intern.

was ist denn mit PIC18xxx ??  Die lite-Ausgabe ist kostenlos 
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en534868

Schau auch mal bei Beitrag "Freeware C-Compiler für PIC 12F ..... 16F"

von heinzhorst (Gast)


Lesenswert?

aerodactyl schrieb:
> Wenn ich einen Quarz oder Resonator nehme, fehlen mir wieder die 2
>
> Pinne.....

Wenn du irgendeine Anwendung hast, in der du Zeiten uder Umdrehungen pro 
Zeiteinheit messen willst, dann sollte es schon ein Quarz sein. 
Grundssätzlich gilt immer: Deine Messung kann nicht genauer sein, als es 
deine Referenz ist. Und die Referenz ist der Oszillator deines 
Mikrocontrollers. Und ein interner RC-Oszillator ist eben nicht 
besonders genau. Wenn deine Messung nicht besonders genau sein muss, 
dann ist das natürlich in Ordnung.

von aerodactyl (Gast)


Lesenswert?

heinzhorst schrieb:
> eine Messung kann nicht genauer sein, als es
> deine Referenz ist. Und die Referenz ist der Oszillator deines
> Mikrocontrollers.

Ja, das ist schon klar.
Die absolute Drehzahl und die Differenzen müssen nicht perfekt sein. Mir 
geht es nur darum, die leidige Division im µC zu umgehen, damit ich bei 
allen Drehzahlen gleiche Werte für die gleiche Drehzahl-Differenz habe.

Bei 4 Messwerten kostet mich das 2,3 ms Rechenzeit. Und das gefällt mir 
einfach nicht :-)

Gruß

Uwe

von bingo (Gast)


Lesenswert?

> Und ein interner RC-Oszillator ist eben nicht besonders genau.

Die internen Oszillatoren der PIC sind auf 1% genau getrimmt, ein 
Resonator hat 0.5%, erst der Quarz bringt den Quantensprung.

> Bei 4 Messwerten kostet mich das 2,3 ms Rechenzeit. Und das gefällt mir
> einfach nicht :-)

Dann nimm halt einen schnelleren PIC, Vorschläge siehe oben, oder einen 
Quarz + PIC mit mehr Pins.

von aerodactyl (Gast)


Lesenswert?

bingo schrieb:
> Dann nimm halt einen schnelleren PIC, Vorschläge siehe oben, oder einen
> Quarz + PIC mit mehr Pins.

Ja, da wird es dann wohl raus hinauslaufen, wenn die Gemeinde auch keine 
bahnbrechenden Ideen mehr hat.

Gruß

Uwe

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.