why

Dependencies:   mbed

Fork of MY_DC_FUCKING_DATA by dong yin yang

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)
}