07.03.2016, 22:40
ist eigentlich recht einfach:
wir brauchen einen zyklischen Interrupt und einen Flankengetriggerten Interrupt
der zyklische Int hat 2 Zähler:
Zähler1 zählt hoch, wird bei Erreichen eines Grenzwerts genullt, bei Zählerständen von 0..5 wird ein Signal gesetzt, sonst zurückgesetzt
Zähler2 zählt einfach immer hoch bis zum Überlauf auf 0
der Flankeninterrupt setzt den Grenzwert auf Zähler2 * Faktor und setzt Zähler2 auf Null
Das Hauptprogramm tut eigentlich garnix, es initialisiert das Signal, die INTs und setzt den Faktor auf den gewünschten Wert je nachdem ob man schneller oder langsamer will ...
aus dem Überlaufwert für Zähler2 ergibt sich die minimale Geschwindigkeit, drunter wird nix erzeugt ...
Das Signal aus Zähler1 von 0..5 gibt ne Mindestlänge für den Impuls, damit die nachgesetzte Elektronik das auch erkennen kann
das Ganze passt in nen ATtiny .. die gibts in DIL8 .. wer mag auch SO8 ... bissel Pegelwandlung von 12 auf 5 und von 5 auf 12 ... nen 5er Stabi ... fertig
wir brauchen einen zyklischen Interrupt und einen Flankengetriggerten Interrupt
der zyklische Int hat 2 Zähler:
Zähler1 zählt hoch, wird bei Erreichen eines Grenzwerts genullt, bei Zählerständen von 0..5 wird ein Signal gesetzt, sonst zurückgesetzt
Zähler2 zählt einfach immer hoch bis zum Überlauf auf 0
der Flankeninterrupt setzt den Grenzwert auf Zähler2 * Faktor und setzt Zähler2 auf Null
Das Hauptprogramm tut eigentlich garnix, es initialisiert das Signal, die INTs und setzt den Faktor auf den gewünschten Wert je nachdem ob man schneller oder langsamer will ...
aus dem Überlaufwert für Zähler2 ergibt sich die minimale Geschwindigkeit, drunter wird nix erzeugt ...
Das Signal aus Zähler1 von 0..5 gibt ne Mindestlänge für den Impuls, damit die nachgesetzte Elektronik das auch erkennen kann
das Ganze passt in nen ATtiny .. die gibts in DIL8 .. wer mag auch SO8 ... bissel Pegelwandlung von 12 auf 5 und von 5 auf 12 ... nen 5er Stabi ... fertig
tschüss,
Harald_K
Harald_K