/***************************************************** Project : Servo Motor Controller Author : Reza Sepas Yar Company : Pishro Noavaran Kavosh Chip type : ATmega16 Clock frequency : 8.000000 MHz *****************************************************/ #include #include #define xtal 16000000 void main(void) { PORTD=0x00; DDRD=0x20; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 2000.000 kHz // Mode: Ph. & fr. cor. PWM top=ICR1 // OC1A output: Non-Inv. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge TCCR1A=0x80; TCCR1B=0x12; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x4E; ICR1L=0x20; OCR1A=1000; while (1) { for(OCR1A=1000;OCR1A<2000;OCR1A++) delay_ms(1); for(OCR1A=2000;OCR1A>1000;OCR1A--) delay_ms(1); }; }