Beginners: please read this post and this post before posting to the forum.
0 Members and 1 Guest are viewing this topic.
#include "SoR_Utils.h"int main(){LED_on();while(1){servo_left(50);}return 0;}
If you move the servo, does it move back to the first position?
#define F_CPU 1000000 // 1 MHz #define SERVOMAX 4377 //1,9ms => +100% => (F_CPU / 8 / 1000 * 1,9) -1#define SERVOMIN 2533 //1,1ms => -100% => (F_CPU / 8 / 1000 * 1,1) -1#define SERVOCENTER 3455 //1,5ms => 0% => (F_CPU / 8 / 1000 * 1,5) -1#define SERVOFRAME 2500 //20ms => (F_CPU / 8 / 1000 * 20) -1#include <avr/io.h>#include <util/delay.h>void init(void) { DDRB |= (1<<PB1) | (1<<PB2); //OCR1x Ports auf Ausgang //Timer0, Mode 14 Fast-PWM, prescaler 8 TCCR1A |= (1<<COM1A1) | (1<<COM1B1) |(1<<WGM11); TCCR1B |= (1<<WGM13) | (1<<WGM12); ICR1=SERVOFRAME; //Impulswiederholzeit 20ms OCR1A=SERVOCENTER; //Servo 1 Mittelstellung OCR1B=SERVOCENTER; //Servo 2 Mittelstellung TCCR1B |= (1<CS11);}int main(void) { init(); _delay_ms(1000); while(1) { //Servos auf MIN OCR1A = SERVOMIN; OCR1B = SERVOMIN; _delay_ms(1000); //Servos auf CENTER OCR1A = SERVOCENTER; OCR1B = SERVOCENTER; _delay_ms(1000); //Servos auf MAX OCR1A = SERVOMAX; OCR1B = SERVOMAX; _delay_ms(1000); //Servos auf CENTER OCR1A = SERVOCENTER; OCR1B = SERVOCENTER; _delay_ms(1000); } return(1);}