Die code ist nicht gans komplett : da ist auch noch eine function für die pulslange von servo in die variabele servo1 / servo2 zu schreiben.
Die timer frequenz kannst du aendern in die "controllib.c". Mit die bits CS0, CS1 und CS2 wird die prescaler eingestellt. Standard ist die auf 8 eingestellt, zahler geht hoch bis 199. Das ergibt dan 16 MegaHz/8 = 2 MegaHz. Nach 200 tics wird er auf 0 gestellt = 10 kHz. Sie konnen diesen wert verringern : OCR0 = 20 gibt schon eine 100 kHz frequenz!
Die prescaler kan auch auf 1 gesetzt werden (CS0,CS1 und CS2 alle auf 0), dan wird bei OCR0 = 200 die frequenz 8* hoher = 80kHz.
Code:
// 10kHz Timer 0:
TCCR0 = (0 << WGM00)
| (1 << WGM01)
| (0 << COM00)
| (0 << COM01)
| (0 << CS02)
| (1 << CS01)
| (0 << CS00);
OCR0 = 199;
Naturlich wir die timer 0 auch für aendere functionen genutzt !! Die laufen dan alle schneller auch naturlich.
Lesezeichen