Gast
#423795
Aufgabe war, einen CAN-Knoten für Radsensoren zu bauen. Das ABS-Steuergerät erwartet die die Impulsabstände als Int-Zahl, 1bit=3,2µs. Daraus resultiert ein erforderlicher Timertakt von 312,5kHz. Mit den AVR-üblichen Vorteilern wäre somit entweder ein 2,5MHz-Quarz (/8) oder aber 20MHz (/64) erforderlich. Ersteres ist für den CAN (90CAN128, 1MBit) zu langsam, zweiteres bedeutet übertakten, mach ich nicht. Lösung: 10MHz Quarz, damit ist der CAN zufieden. Timer0 im CTC-Modus, OCR=0x0f, toggle output on compare. OC0A liefert einen sauberen 312,5kHz Takt für den eigentlichen Zähler, der ist dann auf ext. clock geschaltet. Klar, man hätte auch umrechnen können, aber das hat auch seine Nachteile. Will nur sagen: man kann auch mit dem einen Timer den clock für einen anderen erzeugen und hat damit wesentlich mehr Möglichkeiten. Kostet halt 2 Pins und einen Timer.