Frank Hsu
/
MY_DC_FUCKING_DATA
why
Fork of MY_DC_FUCKING_DATA by
main.cpp
- Committer:
- NTHU666
- Date:
- 2018-04-03
- Revision:
- 3:007e753b7417
- Parent:
- 2:b7cbe24ed792
File content as of revision 3:007e753b7417:
#include "mbed.h" ////////////////////////////////// InterruptIn HallA_1(A1); InterruptIn HallB_1(A2); // Motor2 sensor InterruptIn HallA_2(D13); InterruptIn HallB_2(D12); /////////////////////////////////////// //DigitalOut led_D3(A4); DigitalOut led_D4(A5); /////////////////////////////////////// enum State {CW, CCW}state; int speed_count = 0; void Speed_count(); float DetectRPM_Motor_1(); ///////////////////////////////// Timer RPM_timer; Ticker timer; int hallA_1 = 0; int hallA_1_old = 0; int hallB_1 = 0; int hallB_1_old =0; int hallA_2 = 0; int hallA_2_old = 0; int hallB_2 = 0; int hallB_2_old = 0; //////// float DetectRPM_Motor_1(); void Speed_count(); void HallSensor(); void init_timer(); void init_function(); ///////////////////////////////// float DetectRPM_Motor_1() { float time_difference = 0; time_difference = speed_count*100.0f/12.0f*60.0f; return time_difference; } void HallSensor() { hallA_1 = HallA_1.read(); hallB_1 = HallB_1.read(); if(hallB_1-hallB_1_old==1 && hallA_1==0) { speed_count++; state = CW; led_D4=1; wait(1000); led_D4 =0; // led_D3=0; } else if(hallB_1-hallB_1_old==-1 && hallA_1 == 1) { speed_count++; state = CW; led_D4=1; wait(1000); led_D4 =0; // led_D3=0; } else if(hallB_1-hallB_1_old==1 && hallA_1==1) { speed_count++; state =CCW; // led_D3=1; led_D4=0; } else if(hallB_1-hallB_1_old==-1 && hallA_1==0) { speed_count++; state = CCW; // led_D3=1; led_D4=0; } hallA_1_old = hallA_1; hallB_1_old = hallB_1; } void timer_interrupt() { DetectRPM_Motor_1(); speed_count = 0; HallSensor(); } int main() { init_function(); init_timer(); while(1) { ; } } void init_function() { // led_D3=0; led_D4=0; } void init_timer() { timer.attach_us(&timer_interrupt, 10000);//10ms interrupt period (100 Hz) }