Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 1:3b6c9baa7d0c
- Parent:
- 0:564d77fcaa70
--- a/main.cpp Tue Feb 23 13:47:59 2016 +0000 +++ b/main.cpp Wed Mar 02 08:57:00 2016 +0000 @@ -3,9 +3,9 @@ //The number will be compiled as type "double" in default //Add a "f" after the number can make it compiled as type "float" -#define Ts 0.01f -#define Kp 20.0f -#define Ki 5.0f +#define Ts 0.01f //period of timer1 (s) +#define Kp 1.0f +#define Ki 1.0f PwmOut servo(A0); PwmOut pwm1(D7); @@ -18,24 +18,42 @@ DigitalOut led2(D12); Ticker timer1; +void timer1_interrupt(void); +void init_TIMER(void); void init_IO(void); -void init_ADC(void); void init_PWM(void); +void flash(void); +//Variable(s) for PI controller float ref = 0.45; // 0.45 +(0.48/180.0)*angle, -90<angle<90 float err = 0.0; float ierr = 0.0; float PI_out = 0.0; float ad_read = 0.0; // ADC value +float ad_check; float pwm1_duty = 0.5; + +//Variable(s) for internal control float servo_duty = 0.079;//0.079 +(0.084/180)*angle, -90<angle<90 +int main (void) +{ + init_IO(); + init_PWM(); + init_TIMER(); + while(1) + { + ; + } +} + void timer1_interrupt(void) { ad_read = adc.read(); + ad_check = ad_read; - //////code of PI control////// + //////code for PI control////// @@ -45,12 +63,11 @@ if(PI_out >= 0.5f)PI_out = 0.5; else if(PI_out <= -0.5f)PI_out = -0.5; pwm1_duty = PI_out + 0.5f; - ad_read = adc.read(); - if(ad_read > 0.69f || ad_read < 0.21f)pwm1_duty = 0.5; + if(ad_check > 0.69f || ad_check < 0.21f)pwm1_duty = 0.5; pwm1.write(pwm1_duty); TIM1->CCER |= 0x4; - //////code of internal control////// + //////code for internal control////// @@ -85,15 +102,4 @@ void flash(void) { led1 = !led1; -} - -int main (void) -{ - init_IO(); - init_PWM(); - init_TIMER(); - while(1) - { - ; - } } \ No newline at end of file