Ich möchte damit meine Servos steuern, dies habe ich bislang über den schon vorhandenen Timer0 gemacht, wo ich meine Routine für die Steuerung mit hinzugeschrieben habe:
if(servo_timer>servo1_pos_d) PORTD &= ~IO_PD6; else PORTD |= IO_PD6;
if(servo_timer>servo2_pos_d) PORTC &= ~IO_PC4; else PORTC |= IO_PC4;
if(servo_timer>servo3_pos_d) PORTC &= ~IO_PC6; else PORTC |= IO_PC6;
if(servo_timer<200) servo_timer++; else servo_timer=0;
Allerdings ist die Auflösung bei 100µs recht bescheiden (ca. 17 mögliche Servo-Positionen).
Beim näheren darüber nach denken muss ich aber feststellen das 1µs wirklich etwas wenig sind, 10µs wären (mit dann ca. 170 möglichen Positionen) ja fast schon auf 1° genau. Also 10µs reichen!
Lesezeichen