![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
MD
main.cpp
- Committer:
- sgrsn
- Date:
- 2016-09-26
- Revision:
- 1:770e1fc380ff
- Parent:
- 0:41f2e835aa5d
- Child:
- 2:f2b42e387d08
File content as of revision 1:770e1fc380ff:
#include "mbed.h" #include "i2cslave.h" #include "define.h" char Registar[128]= {}; void check(); int main() { BusOut motor1(dp4, dp9, dp13, dp14); BusOut motor2(dp25, dp24, dp18, dp17); PwmOut pwm1(dp2); PwmOut pwm2(dp1); motor1 = 0; motor2 = 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(MD6_addr); /**************************************/ i2c.frequency(1000000); Ticker tic; tic.attach(check, 0.1); char prev_motor1_state = 0; char prev_motor2_state = 0; while(1) { pwm1 = (float)(Registar[motor1_pwm]) / 255; pwm2 = (float)(Registar[motor2_pwm]) / 255; if(Registar[motor1_state] != prev_motor1_state) { motor1 = 0; wait_ms(5); } if(Registar[motor2_state] != prev_motor2_state) { motor2 = 0; wait_ms(1); } motor1 = Registar[motor1_state]; motor2 = Registar[motor2_state]; prev_motor1_state = Registar[motor1_state]; prev_motor2_state = Registar[motor2_state]; wait_ms(40); } } void check() { Registar[check_reg]++; if(Registar[check_reg] > 2) { NVIC_SystemReset(); } }