
2016/03/06 servo Winston edit
Dependencies: mbed
main.cpp
- Committer:
- winstonkuo
- Date:
- 2016-03-06
- Revision:
- 0:428e046afc89
File content as of revision 0:428e046afc89:
/*LAB_SERVO*/ #include "mbed.h" PwmOut servo(A0); PwmOut pwm1(D7); DigitalOut myled(LED1); DigitalOut led1(D13); DigitalOut led2(D12); Ticker timer1; void timer1_interrupt(void); void init_TIMER(void); void init_IO(void); void init_PWM(void); float servo_duty = 0.058; //0.079 +(0.084/180)*angle, -90<angle<90 bool servo_flag = false; int main() { init_TIMER(); init_IO(); init_PWM(); while(1) { servo_duty += 0.00007; if(servo_flag == true) { servo.write(servo_duty); servo_flag = false; } if(servo_duty > 0.1) break; } } void timer1_interrupt(void) { servo_flag = true; } void init_TIMER(void) { timer1.attach_us(&timer1_interrupt, 10000);//10ms interrupt period (100 Hz) } void init_IO(void) { led1 = 0; led2 = 1; } void init_PWM(void) { servo.period_ms(20); //pwm period 20ms servo.write(servo_duty); //pwm1.period_us(50); //pwm1.write(0.5); //TIM1->CCER |= 0x4; }