Forum: Mikrocontroller und Digitale Elektronik Drehzahlvergleich mit ATMEGA16


von Matthias (Gast)


Lesenswert?

Hallo,

ich habe schon sehr lang im Forum gesucht und leider dazu nix gefunden.
Ich bin noch sehr unerfahren in Sachen Mikrokontrollerprogrammieren.
Ich arbeite an einem ATMEGA16 und Programmiere in C. Mein Problem ist 
folgendes.
Ich muss zwei Drehzahlen miteinander Vergleichen. Das Problem liegt 
meiner Ansicht nach daran, dass der Eingang PB0 schon belegt ist, da ich 
den Timer0 schon für eine Funktion meines Programmes benötige(als 
Zähler). Kann ich mit den verbleibenden Eingängen überhaupt zwei 
voneinander unabhängige Drehzahlen einlesen?
Es geht um die Ganganzeige eines Motorradmotors. Ich möchte die Drehzahl 
am Getriebeeingang mit der Drehzahl am Getriebeausgang vergleichen um 
daraus den aktuellen Gang zu ermitteln. Es ist dabei nicht notwendig die 
Drehzahl auf ein LCD auszugeben sondern lediglich in einer Variablen zu 
speichern. Die Drehzahl selber möchte ich dann nur über LED's ausgeben 
(also so eine Art Lauflicht)- aber das bekomm ich dann sicher hin.
Mein eigentliches Probelm ist das mit den beiden Drehzahlen.

Ich hoffe mein Problem ist soweit klar.

Ich bedanke mich schonmal für die Mühe von euch.

Gruß Matthias

von STK500-Besitzer (Gast)


Lesenswert?

entweder fragst du zwei Eingänge in regelmäßgen Abständen (Timer) ab und 
misst jeweils den Zustand so die Dauer eines Pegels (High oder Low), 
oder du lässt einen Timer laufen und wartest auf das Eintreten der durch 
die Sensoren ausgelösten Intrrupts und speicherst für jeweils eine 
Flanke die Zeit/den Timerwert und bildest dann die Differenz zwischen 
zwei Flanken.
Sowas machen diverse AVR mit Hilfe der Inputcapture-Unit, allerdings nur 
für einnen Kanal.

von Matthias (Gast)


Lesenswert?

Vielen Dank ersteinmal für die schnelle Antwort.

Leider versteh ich das nicht ganz. Eine Drehzahl prinzipiell kann ich ja 
nur mit Hilfe von Timer/Counter ermitteln. Oder sehe ich das falsch? Ich 
find das auch irgendwie komisch dass man nur an zwei Eingängen des µC 
die Flanken zählen kann. Warum kann ich nicht an jedem beliebigen 
Eingang die Signale Zählen. Etwa in der Art wie:" wenn 5 Signale am 
Eingan PA1 dann...."
Das würde mich nebenbei auch mal Interessieren :-)

Meine Hauptfrage ist: Geht es überhaupt. Also zwei Drehzahlen mit den 
mir noch zur Verfügung stehenden Eingängen einzulesen.

Sorry für undeutliche Ausdrucksweisen

Gruß Matthias

von Krapao (Gast)


Lesenswert?

Und was wäre mit der Kombination Timer/Counter1 und Timer/Counter2?

Was blockiert dir denn PB0; kannst du dessen Softwarefunktion nicht auf 
einen anderen Pin legen, oder gibst du dort XCK aus?

von Matthias (Gast)


Lesenswert?

An Pb0 hängt das Signal eines Encoders, nach einer gewissen Anzahl von 
Impulsen wird ein Ereignis ausgelöst. Das mach ich mit Timer 0. Welchen 
Eingang hat denn Timer 2?
Gruss Matthias

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.