Uiuiui...

Mit so ner großen Resonaz in der Zeit habe ich wirklich nicht gerechnet. Großes Lob! Mir is klar das es sowohl mit einem ATmega8 und mit einem ATmega88 geht allerdings würd ich gerne den Rat eines Profis hören welchen ich lieber benutzen sollte.
Ode rmals anders gefragt: Wird der "Nachfolger" bei den neuen Entwicklungen bevorzugt eingesetzt oder bringt er keine Vorteile. Da er Pincompatibel ist ist ein Programm normalerweise auch relativ einfach für den anderen Controler umzuschreiben, oder?


Ich habe mich nunmal ein wenig genauer mit den Timern befasst, mit denen kann man ja doch ganz schön viele unterschiedliche Dinge machen, wie das beim PIC ist kann ich nicht beurteilen da ich mich da kaum mit anderen Anwendungen des Timers als den klassischen Overflow-Interrupt auseinander setzen musste. Also noch ein paar nähere Details bitte zu folgendes:

Mit einem T-Eingang, z.B. T0 (Pin 6) lege ich den Takt des Timers fest, dieser darf also auch nicht höher sein als die Taktfrequenz des Prozessors, richtig?
Aufwändiger kann ich es machen (hat aber im Endeffekt den selben Effekt)
indem ich eine Flanke an einem Interuppt-Eingang (z.B. Pin 4) erkenne und dann eine Variable um 1 inkrementier, oder?

Im Hintergrund lass ich nen weiteren Timer laufen damit ich dann bei einem festen Wert, wie z.B. alle 25 ms nachschaue wie viel Impulse aufgetreten sind und daraus dann die Drehzahl berechne.
Ist es möglich beim ersten Timer zusätzlich noch einen Interrupt auszuführen, z.B. nach 100 Impulsen.

Idee:
Sobald einer der beiden Timer überläuft bzw. den Soll-Wert erreicht hat (100 Impulse oder 25ms) setz ich beide auf 0.
Grund ist folgender:
- langsame Drehzahl (Timer 2 schlägt zuerst zu -> Impulsdauermethode)
- hohe Drehzahl (Timer 1 schlägt zuerst zu -> Impulsanzahlmethode?)

Setz ich nun beide Timer auf 0 sobald nur einer ausgelöst wird kommen sie sich nicht mehr in die Quere, denn z.B. folgender fall könnte das Ergebnis total verfälschen:
Timer 1 hat einen Zählstand von 80, Timer 2 erreicht 25ms -> korrekte Drehzahlbestimmung.
Timer 1 erreicht 100, Timer 2 z.B. erst bei 2ms -> oha 100 Impulse in nur 2 ms -> gigantische Drehzahl.

So wie Du das beschreibst mit der Ansteuerung der Segmentanzeige habe ich es auch schon vorgehabt.
Mittels Tabelle schauen welches Segment angesteuert werden muss und der restliche Schnickschnack wie führende Null wegbekommen ist denk ich kein Problem, aber da kann ich mich erst genaueres sagen wenn ich die Hardware habe und dann acuh anfange mit dem Multiplex Verfahren.
Genausowenig dürfte es ein Kinderspiel sein die Upm max abzuspeichern (EEPROM).
Schön wäre z.B. noch ein Blinken der Anzeige bei neuem Rekord ode rbei zu hoher Drehzahl.
Man kann ja wenn es dann funktioniert das ganze noch durch ein zwei Tastern erweitern.
Interesant wär auch noch ne Anzeige der Betriebsstunden bzw. -minuten des Motors auf Knopfdruck oder beim einschalten. Aber das alles nachdem die Grundfunktion funktioniert.


Sehe ich das richtig das ich 3 Timer benötige?
2 für Impulsdauer bzw Impulsanzahl
1 für Multiplex-Ausgabe


Wichtig wär mir noch einen Tipp zur Schutzbeschaltung für die auftretende Gegeninduktion beim Öffnen des Unterbrecher Kontakts. Normalerweiße müsste es doch wie bei einem Relai eine Freilaufdiode tun die die Sperrspannung an der LED auf 0,7V bzw 0,3V begrenzt.
Nur ist diese Didoe evtl. für diese Frequenzen zu langsam?


mfg
Benny