Ok, ich versuchs mal. Ohne Garantie, der Code ist nicht getestet.
Als Compiler benutze ich avr-gcc.
Zunächst mal kurz die Berechnung für's OC-Register:
f=3,6864 MHz -> Ein Takt dauert 1/f = 271,27ns
100µs/271ns = 368,64 -> Anzahl der Taktzyklen in 100µs
368 = 0x170
askazoCode://Register setzen //Mode = CTC (Clear Timer on Compare) TCCR1B = 0x04; //Output-Compare Register einstellen. OCCR1AH = 0x01; OCCR1AL = 0x70; //Output Compare Match - Interrupt einschalten TIMSK = 0x10; //Timer starten mir clock-Devider = 1 TCCR1B |= 0x01; //Interrupts global freigeben sei(); while (1) { //do nothing } //Interrupt-Routine //Wird alle 100µs aufgerufen signal (SIG_OUTPUT_COMPARE1A) { //Hier kommt rein, was auch immer Du alle 100µs machen willst }







Zitieren

Lesezeichen