Joah, alles gut. Hab 'ne schöpferische Pause um nicht zu sagen Ideensuchend. Da kam mir Deine Frage gerade recht um mal wieder einen Steckbrettaufbau zu machen und mit dem verstaubten Schrittmotor in einem alten Floppylaufwerksskelett etwas zu experimentieren. Also ich danke Dir.
Übrigens könnte man nach Deinem Programmentwurf mit dem Toggeln in der ISR auch höhere Frequenzen hinbekommen, wenn man die Anweisung "on Timer1 Frequenzerzeugung" mit dem Parameter "nosave" ausrüstet. Dann fallen die ganzen zeitraubenden Registersicherungen weg und in der ISR würde ich dann dann nur noch "!sbi PIND,2" reinschreiben. Timer1 natürlich vorher in einem Mode konfigurieren, der ein Setzen des Timer1 (TCNT1) in der ISR unnötig macht. SBI ist ein Assembler Befehl, der hier Bit 2 im PIND Register setzt, aber das SREG und andere Prozessorregister nicht verändert (deshalb keine Registersicherungen notwendig und deshalb das "nosave"). Ein Ausgangspin wird normalerweise im PORTx Register geschaltet. Wird stattdessen das entsprechende PINx Registerbit gesetzt, wird der PORT-Pin bei den meisten neueren AVR, wie Mega88, Mega168 getoggelt; und man braucht es dort nicht erst zu löschen um es wieder zu setzten um den Ausgangspin zu toggeln.
Aber 300kHz kann man damit wahrscheinlich auch nicht erreichen. Außerdem würde der AVR bei der Frequenz nur noch in der ISR hängen und sonst kaum noch etwas anderes machen können. Probiere ich vielleicht auch nochmal aus. Vielleicht sogar auch bis zum Wochenende
Gruß
Searcher
Lesezeichen