Hallo Sven,

die Rechteckerzeugung der Timer komplett alleine. Stichwort ist "Compare".
Bei einem Compare-Match, d.h. der Zählerstand stimmt mit dem im Compare-Register gespeicherten Wert überein, kann der Timer 1) einen Pin toggeln (welcher ist fest vorgegeben -> Datenblatt) und 2) den Timer neu starten. Du erhälst so ein Rechtecksignal mit 1:1 Impuls-Pausenverhältnis.
Wenn der Wertebereich des Timers nicht ausreicht, dann muß man den Overflow-Interrupt mit hinzunehmen.
Timer0 hat i.a. keine Compare-Unit. Timer1 und 2 besitzen in der Regel eine.

Für den EEprom Zugriff gibt es bei Bascom 2 unterschiedliche Wege. Erstens via "Readeeprom" und "Writeeeprom" und zweitens durch Definition von Variablen als ERAM.

Größere Datensätze würde ich eher mit Read-/Writeeeprom lesen und schreiben, einzelnen Werte gehen besser mit "Dim Var as ERAM type".

Ein Fallstrick bei Eram-Variablen ist, das man sie nicht für alle Funktionen verwenden kann. Ggf. müssen sie vorher in eine 'normale' RAM-Variable umkopiert werden.

Ciao,
Werner