robocon_2016
/
2016_slave_servo
servo_/30
Revision 0:f7be77a7663f, committed 2016-09-30
- Comitter:
- sgrsn
- Date:
- Fri Sep 30 12:33:22 2016 +0000
- Commit message:
- servo_9/30
Changed in this revision
diff -r 000000000000 -r f7be77a7663f define.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/define.h Fri Sep 30 12:33:22 2016 +0000 @@ -0,0 +1,49 @@ +/*Registar group*************************************/ + +#define motor1_state 0x01 +#define motor2_state 0x02 +#define motor1_pwm 0x03 +#define motor2_pwm 0x04 +#define check_reg 0x05 +#define PM_target_reg 0x10 +#define RE_target_reg 0x20 +#define Kp 0x30 +#define pid_start 0x40 +#define machine_state 0x45 +#define PM_ofset_reg 0x50 +#define wheel_start 0x60 +#define PM_start 0x70 + +/*Address group*************************************/ +//MD : MotorDriver +#define MD1_addr 0x12 +#define MD2_addr 0x14 +#define MD3_addr 0x16 +#define MD4_addr 0x18 +#define MD5_addr 0x20 +#define MD6_addr 0x22 +#define MD7_addr 0x24 +#define MD8_addr 0x26 +#define MD9_addr 0x28 +#define MD10_addr 0x30 +#define MD11_addr 0x32 +#define MD12_addr 0x34 +#define MD13_addr 0x36 +#define MD14_addr 0x38 +#define MD15_addr 0x40 + +//CY : Cylinder +#define CY1_addr 0x50 + +//SERVO : Servo motor +#define SERVO1_addr 0x60 + +//SE : Sensor +#define SE1_addr 0x90 +#define SE2_addr 0xA0 + +/*Motor movement***********************************/ + +#define Nomal 5 +#define Reverse 10 +#define Stop 3
diff -r 000000000000 -r f7be77a7663f i2cslave.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/i2cslave.lib Fri Sep 30 12:33:22 2016 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/sgrsn/code/i2cslave/#69b088a9899b
diff -r 000000000000 -r f7be77a7663f main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Sep 30 12:33:22 2016 +0000 @@ -0,0 +1,53 @@ +#include "mbed.h" +#include "i2cslave.h" +#include "define.h" + +char Registar[128]= {}; +void check(); + +int main() +{ + PwmOut Servos[4] = { PwmOut(dp24), PwmOut(dp1), PwmOut(dp2), PwmOut(dp18) }; + char servodata[4] = {}; + for(int i = 0; i < 4; i++) + { + Servos[i] = 0; + } + NVIC_SetPriority(TIMER_16_0_IRQn, 20); + NVIC_SetPriority(TIMER_16_1_IRQn, 20); + NVIC_SetPriority(TIMER_32_0_IRQn, 20); + NVIC_SetPriority(TIMER_32_1_IRQn, 20); + NVIC_SetPriority(I2C_IRQn, 10); + i2cslave i2c(dp5, dp27, Registar); + /*change address every micon***********/ + i2c.address(SERVO1_addr); + /**************************************/ + i2c.frequency(1000000); + Ticker tic; + tic.attach(check, 0.1); + while(1) + { + for(int i = 0; i < 4; i++) + { + servodata[i] = (Registar[motor1_state] >> i) & 1; + if(servodata[i]) + { + Servos[i].pulsewidth(0.0010); + } + else + { + Servos[i].pulsewidth(0.0006); + } + wait_ms(60); + } + } +} + +void check() +{ + Registar[check_reg]++; + if(Registar[check_reg] > 2) + { + NVIC_SystemReset(); + } +}
diff -r 000000000000 -r f7be77a7663f mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Sep 30 12:33:22 2016 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/abea610beb85 \ No newline at end of file