han back
/
CLEO_DCMOTOR
SMART CLEO DC Motor
main.cpp
- Committer:
- SMART_CLEO
- Date:
- 2017-09-28
- Revision:
- 0:daf8e3af4eec
File content as of revision 0:daf8e3af4eec:
#include "mbed.h" #include "TextLCD.h" // INA, INB, INT PinName pin_DC[3] = {PA_6, PA_7, PA_8}; PwmOut INA(pin_DC[0]); PwmOut INB(pin_DC[1]); InterruptIn INT(pin_DC[2]); // rs, rw, e, d0-d3 TextLCD lcd(PB_12, PB_13, PB_14, PB_15, PA_9, PA_10, PA_11); enum{STOP, CW, CCW}; uint16_t Int_Count = 0; void DC_Ctrl(uint8_t dir, float Speed); void INT_Count_ISR(void); int main() { lcd.printf(" DC Motor\n"); lcd.printf(" Volt : [mV]"); INT.rise(&INT_Count_ISR); while(1) { // CW for(int i=0; i<=100; i++) { DC_Ctrl(CW, i); wait(0.02); } DC_Ctrl(CW, 0); wait(2); lcd.locate(8, 1); lcd.printf("%4d", Int_Count); Int_Count = 0; // CCW for(int i=0; i<=100; i++) { DC_Ctrl(CCW, i); wait(0.02); } DC_Ctrl(CCW, 0); wait(2); lcd.locate(8, 1); lcd.printf("%4d", Int_Count); Int_Count = 0; } } void DC_Ctrl(uint8_t dir, float Speed) { switch(dir) { case STOP: INA = 0; INB = 0; break; case CW: INA = Speed/100; INB = 0; break; case CCW: INA = 0; INB = Speed/100; break; } } void INT_Count_ISR(void) { Int_Count++; }