Hallo,
es gibt viel zu Deinem Programm zu sagen. Aber erst mal einen Anfang:
Die ersten Zeilen sollten auch noch
$framesize
$swstack
$hwstack
umfassen, sonst sind die in Bascom eingestellten Werte unter "Options" - "Compiler" - "Chip" wirksam, die sonst versteckte Probleme bereiten können.
Der Wert für $crystal muß der CLKcpu Frequenz entsprechen. Bei einem fabrikneuen ATtiny85 ohne Fuse bzw Registermanipulationen ist die Defaulteinstellung 1MHz.
Stimmt der $crystal Wert und die tatsächliche Frequenz nicht überein, hat das Auswirkung auf die Zeiten zB für "waitms" und damit Deiner Verzögerung.
Du gibst die Verzögerung in Deiner Erklärung mit "_" an. Besser sind Werte wie zB Sollwert = 100ms und Istwert = 10ms. Das vermeidet Rätselraten und läßt dann Rückschlüsse auf bestimmte Fehler zu.
Die Schleifen zu Links/Rechts sollten aber schon die LEDs mehrfach ein/ausschalten. Da sehe ich erstmal keinen Fehler. Allerdings sind 100ms sehr kurz und läßt sich fast nicht sehen. Sicher, daß sie nur einmal an- und ausgehen bevor die andere Seite beginnt? Und was soll sein, wenn "L _ R _ L_ _ _" vorbei ist?
Datenblatt ist unbedingt erforderlich.
Im CONFIG TIMER1
schaltet Clear Timer = 1 den CTC Modus ein. Wozu, wenn Du OCR1C nicht nutzt (Erklärung im Datenblatt)
Timer1 ist ein 8-Bit Timer und die zugehörigen Register haben auch nur eine 8-Bit Breite.
Deshalb ist die Zuweisung "Ocr1a = 51458" sinnlos, da eine 8-Bit Zahl maximal bis 255 geht.
So, das war es erstmal bis hier.
Gruß
Searcher
Lesezeichen