Forum: Mikrocontroller und Digitale Elektronik Atmega1284p 6-fach Frequenzmessung uC - OSII


von brunzer (Gast)


Lesenswert?

Hallo,

Ich baue zurzeit an einer Lüfterregelung für den PC mit uCOS 2. Für die 
Regelung würde ich gerne das Tachosignal der Lüfter einlesen. Dazu nimmt 
man den Input Capture Pin. Jedoch hat der Atmega1284p nur 2 und ich habe 
sowieso nicht mehr soviele Portpins frei. Deshalb hätte ich mir gedacht 
das ich die Tachosignal Multiplexe?!? Hat da jemand eine Idee?? Weiters 
wirds dann interessant wie das mit dem Timing aussieht beim uC OS2.

mfg der brunzer

von Floh (Gast)


Lesenswert?

brunzer schrieb:
> Für die
> Regelung würde ich gerne das Tachosignal der Lüfter einlesen.

Komischer Ansatz. In meinen Augen wäre die eigentliche Arbeit des 
Lüfters, eine bestimmte Temperatur zu halten.
Also würde ich eher die Temperatur messen und regeln als die 
Drehgeschwindigkeit.

von brunzer (Gast)


Lesenswert?

Ja sicha die Temperatur lese ich ein und die Drehzahl will ich auch 
einlesen.
Hätte mir schon gedacht das Tachosignal mit einem Tiefpass zu einer 
Gleichspannung machen und dann mit ADC einlesen und dann rückrechnen, 
aber ich denke das das zu ungenau wäre...
Aber die eigentliche Frage ist wie ich meine 6 Tachosignal am Capture 
Pin multiplexen kann..

mfg

von Karl (Gast)


Lesenswert?

Hallo,

zähl doch per Software. Nimm PCINTs und wenn der ausgelöst wird schaust 
welcher Pin sich geändert hat und zählst die entsprechende Variable hoch 
und dann nimmst du einen langsameren Timer mit zb 1/10sec oder 1sec 
Laufzeit und kuckst was in der Variable steht und schon hast du deine 
Umdrehungen pro 1/10sec bzw sec

Wenns langsamer sein kann dafür aber genauer dann kannst du auch länger 
warten

Gruß Karl

von brunzer (Gast)


Lesenswert?

Ok, gute idee, jedoch weißt du wie ich das mache mit dem uC OS?
weil meine Idee wäre einen eigenen Task machen der 1Sekunde aktiv ist 
und die Drehzahl einließt. Dazu müsste ich den "taskswitchtimer" 
anhalten.. jedoch weiß ich nicht wie das geht..

Das OS mach ich deswegen weil
1. Kommunikationstask zum PC
2. LCD-task für Datendiagramm usw.
3. Regler_task
4. Drehzahl task
5. Temperatur task
6. RGB LED Pwm..

mfg
der brunzer

von brunzer (Gast)


Lesenswert?

push

von Willi (Gast)


Lesenswert?

plop

Mal sehen, ob Du es schaffst, auch 6 Kanäle zu messen.
Beitrag "4-Kanal Drehzahlmessung mit ATmega88"

von Joachim .. (joachim_01)


Lesenswert?

Naja... ich kenn dein uC OS ja nicht, aber eigentlich wäre das nach 
gesundem Menschenverstand halt eine Aufgabe für ein C-Programm. ISR 
erstellen, darin zählen und schließlich in der zeitunkritischen 
Hauptschleife irgendwas mit dem Ergebnis das dir der ISR-Zähler liefert, 
entsprechend ausführen.
Warteschleifen ohne For-Anweisung sondern mit dem 16-bit Timer/Counter1 
erstellen kannst du?

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.