/*

* Servo.c

*

* Created: 07-Oct-20 12:42:40 PM

* Author : Luke

*/

#define F_CPU 16000000UL

#include <avr/io.h>


int main(void)

{

DDRD |= (1<<PD5);

ADMUX = 0x60;

ADCSRA |= (1<<ADEN) | (1<<ADATE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);

TCNT1 = 0;

ICR1 = 4999; //16M / 64 / 50 = 5000

TCCR1A |= (1<<WGM11)|(1<<COM1A1);

TCCR1B |= (1<<WGM12)|(1<<WGM13)|(1<<CS10)|(1<<CS11);

while (1)

{

ADCSRA |= (1<<ADSC);

while(!(ADCSRA&(1<<ADSC)));

ADCSRA|=(1<<ADIF);

OCR1A = (ADCH*1.84) + 130;

}

}