新型モータードライバのメインプログラム
Dependencies: mbed
main.cpp
- Committer:
- SES01
- Date:
- 2016-05-11
- Revision:
- 0:cf3829614495
- Child:
- 1:e45830806a1c
File content as of revision 0:cf3829614495:
#include "mbed.h" #define F_MD 18000 //PWMキャリア周波数設定 /* * High_A High_B * ┃ ┃ * ┃ ┃ * ┣━━━┫ * ┃ ┃ * ┃ ┃ * Low_A Low_B */ //Serial pc(USBTX, USBRX); Serial comPort(dp16, dp15); //DigitalOut myled1(LED1); //汎用IOで使用するためLED1は使用できない DigitalOut myled(dp24); DigitalOut driverEnable(dp28); //dp1 = ローサイドPWM1, dp2 = ローサイドPWM2 //dp5 = ハイサイドPWM1, dp27 = ハイサイドPWM2 (オープンドレイン) PwmOut Low_A(dp1); PwmOut Low_B(dp2); DigitalOut High_A(dp5); DigitalOut High_B(dp27); AnalogIn ain(dp4); BusInOut led7(dp6, dp9, dp10, dp11, dp13, dp14, dp17, dp18); void com_rx() { /*switch (comPort.getc()) { case 255 }*/ } int main() { //comPort.baud(9600); //comPort.format(8, Serial::None, 1); comPort.attach(&com_rx, Serial::RxIrq); int FP_MD = 1000000 / F_MD; //PWM一周期の周期(マイクロ秒) led7.output(); High_A = 0; High_B = 1; Low_A.period_us(FP_MD); Low_A.write(0); Low_B.period_us(FP_MD); Low_B.write(0); //初期設定完了 //flipper.attach(&flip, 2.0); //flipper.attach(&flip, 2.0); //myled1 = 1; led7 = 0b11011010; driverEnable = 1; while (1) { Low_A.write((ain.read() - 0.2) * 1.25 < 0 ? 0 : (ain.read() - 0.2) * 1.25); //pc.printf("%f\n", (ain.read() - 0.2) * 1.25 < 0 ? 0 : (ain.read() - 0.2) * 1.25); comPort.printf("%d", 0b01010101); } }