#include <Servo.h> // include the servo library
const int ServoPin = 11;
Servo myServo; //initialize the servo object
// we will control our servo with
volatile int angle = 0;
ISR(TIMER2_COMPA_vect) {
angle++;
if (angle > 180) {
angle = 0;
}
}
void setup() {
myServo.attach(ServoPin); // Attach servo pin to servo object
cli(); // Disable global interrupts
TCCR2A = 0; // Clear TCCR2A register
TCCR2B = 0; // Clear TCCR2B register
// Set CTC mode (Clear Timer on Compare Match)
TCCR2A |= (1 << WGM21);
TCCR2B |= (1 << CS22) | (1 << CS21); // Prescaler 256
TCNT2 = 0;
OCR2A = 1506;
// Enable compare interrupt
TIMSK2 |= (1 << OCIE2A);
sei(); // Enable global interrupts
}
void loop() {
myServo.write(angle);
delay(50);
}