Anbei die geänderte Version für den ATMega8, bei dem nun Timer0 vorgeladen wird.
Es handelt sich aber noch um ungetesteten Code für das ursprüngliche Display, sollte also erst getestet werden ob's auf dem überhaupt hinhaut, sowohl von der prinzipiellen Code-Funktion, als auch mit der Ausgabe jeweils 1 Linie pro ISR-Aufruf.
Sobald das dort läuft, kannst Du die Änderung
selbst in der .S vornehmen, oder C-Beispielcode einstellen, dann schau' ich's mir an.jedes Frame wechselt M zwischen high und low. (1.Frame high | 2.Frame low | ...)
Leider musste meine Kalkulation für den Zähler-Topwert über das #define in der .h über Bord gehen. Der GCC hatte kein Problem damit, aber der GNU Assembler war nicht dazu zu bewegen die Rechnung aufzulösen.
top_val muss also nun selbst ausgerechnet werden, ist für 75Hz bereits erledigt, bei dieser Wiederholrate sind noch ungefähr 27% der Prozessorleistung für anderen Code verfügbar.
Lesezeichen