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
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.
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
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.