Tach timo,
> - OCR0 so dimensioniert das er bei jedem 2-Takt den Output-Compare Pin
> (OC2) toggelt, also 4Mhz da der AVR auf 8Mhz läuft.
mhhh, in dem Satz sind gleich zwei Unstimmigkeiten drin. Die erste: OCR0
hat OC0 als output compare. Außerdem (wie du schon unten richtig erkannt
hast): Es wird zwar mit 4MHz getoggelt aber die Frequenz des erzeugten
Rechtecksignals beträgt 2MHz.
Mein Ansatz für den zweiten timer wäre recht einfach. Du willst alle
4096 Takte einen interrupt haben. Also muss der zweite timer 4096 mal
langsamer laufen als der erste. Am einfachsten geht das, indem du den
prescaler auf 1024 setzt und das OCR auf 3. Fertig.
Das einzig kniffelige an der Sache ist, dass du die beiden timer auch
synchron laufen lassen musst. Das geht eigentlich nur zuverlässig auf
assembler basis. Der Trick ist die TCCRs bis auf die prescaler
durchzukonfigurieren. Das sorgt dafür, dass die timer nicht loslaufen,
bis du alle anderen Aufgaben erledigt hast. Dann musst du dir ausrechnen
wie viele Takte du brauchst, um die prescaler bits eines timers zu
setzen. Wenn man es klug anstellt schaft man das in ein oder zwei
Takten. Auf diesen Wert musst du dann den TCNT des zu letzt gestarteten
timers setzen. Dadruch hat er den passenden Vorsprung und läuft dann
synchron mit dem ersten timer.
> Noch eine andere frage (Multimeter: Fluke 175): Solche
> Rechteckfrequenzen sollte ich im DC-Frequenz bereich doch messen können?
Nicht mit diesem Multimeter. Der Hersteller gibt eine maximale
Bandbreite von 100kHz an.
Thor