LPC1768

Dependencies:   mbed

BreakS_Check.cpp

Committer:
nadaanas1985
Date:
2021-01-24
Revision:
4:01c29032b989
Parent:
3:48452b27a9f8

File content as of revision 4:01c29032b989:

#include "mbed.h"
#include "math.h"
 
CAN can(p9, p10);
//DigitalOut canS(CANS,1);
DigitalOut LED_1(LED1);
AnalogIn Ana0(p15);
AnalogIn Ana1(p16);
AnalogIn Ana2(p17);
AnalogIn Ana3(p19);


 
int main()
{
    
    wait(0.5);
    can.frequency(250000);
    
   // canS=0;
    
    float max=0;
    int count =0;
 
    //CANMessage cn(CAN_ID, can_msg, 8, CANData,CANExtended);
    while(1) 
    {
        float A0_Read = Ana0.read()-0.065;        
        float A1_Read = Ana1.read()-0.065;        
        float A2_Read = Ana2.read()-0.065;       
        float A3_Read = Ana3.read()-0.065;
        
        if(A0_Read<0)
        {
            A0_Read=0;
        }
        
        if(A1_Read<0)
        {
            A1_Read=0;
        }
        
        if(A2_Read<0)
        {
            A2_Read=0;
        }
        
        if(A3_Read<0)
        {
            A3_Read=0;
        }
        
        //int A0_Converted = floor(A0_Read*300);
        //int A1_Converted = floor(A1_Read*300);
        //int A2_Converted = floor(A2_Read*300);
        //int A3_Converted = floor(A3_Read*300);
        
        //float CalculatedPower = pow((float)1.043 , (float)A0_Read*69);        
        
        //float A0_Converted = floor(((3.1)*(pow((float)1.043 , (float)A0_Read*69))-3.1));
        //Float A1_Converted = floor(((3.1)*(pow((float)1.043 , (float)A0_Read*69))-3.1));
        //float A2_Converted = floor(((3.1)*(pow((float)1.043 , (float)A0_Read*69))-3.1));
        //float A3_Converted = floor(((3.1)*(pow((float)1.043 , (float)A0_Read*69))-3.1));
        
        float A0_Converted = 0;
        float A1_Converted = 0;
        float A2_Converted = 0;
        float A3_Converted = 0;
        char Air_Pressure_01 = (int)0;
        char Air_Pressure_02 = (int)0;
        char Air_Pressure_03 = (int)0;
        char Air_Pressure_04 = (int)0;
        
        bool CheckFront01=false;
        bool CheckFront02=false;
        bool CheckRear01=false;
        bool CheckRear02=false;
        
        if(A0_Read>0.001)
        {
            A0_Converted = ((3.29)*(pow((float)1.0356 , (float)A0_Read*81))-3.0);
            Air_Pressure_01 = (int)(A0_Converted/0.05);
            CheckFront01=true;
        }
        else
        {
            Air_Pressure_01 = (int)0;
        }
        
        if(A1_Read>0.007)
        {
            A1_Converted = ((3.07)*(pow((float)1.0212 , (float)A1_Read*146))-3.0);
            Air_Pressure_02 = (int)(A1_Converted/0.05);
            CheckFront02=true;
        }
        else
        {
            Air_Pressure_02 = (int)0;
        }
        
        if(A2_Read>0.007)
        {
            A2_Converted = ((3.12)*(pow((float)1.0314 , (float)A2_Read*97))-3.0);
            Air_Pressure_03 = (int)(A2_Converted/0.05);
            CheckRear01=true;
        }
        else
        {
            Air_Pressure_03 = (int)0;
        }
        
        if(A3_Read>0.007)
        {
            A3_Converted = ((3.12)*(pow((float)1.0244 , (float)A3_Read*127))-3.0);
            //A3_Converted = ((3.1)*(pow((float)1.0308 , (float)A3_Read*95))-3.0);
            Air_Pressure_04 = (int)(A3_Converted/0.05);
            CheckRear02=true;
        }
        else
        {
            Air_Pressure_04 = (int)0;
        }
        
        if(CheckFront01 & CheckFront02)
        {
            Air_Pressure_01 = (int)((Air_Pressure_01+Air_Pressure_02)/2);
            Air_Pressure_02 = Air_Pressure_01;
        }
        else
        {
          Air_Pressure_01=0;
          Air_Pressure_02=0;
        }
          
        if(CheckRear01 & CheckRear02)
        {
            Air_Pressure_03 = (int)((Air_Pressure_03+Air_Pressure_04)/2);
            Air_Pressure_04 = Air_Pressure_03;
        }  
        else
        {
          Air_Pressure_03=0;
          Air_Pressure_04=0;
        }
        
        
        //printf("AIR 0: %f \t",A0_Read);
        //printf("AIR 1: %f \t",A1_Read);
        //printf("AIR 2: %f \t",A2_Read);
        //printf("AIR 3: %f \n\r",A3_Read);
        //printf("AIRC0: %f \t",A0_Converted);
        //printf("AIRC1: %f \t",A1_Converted);
        //printf("AIRC2: %f \t",A2_Converted);
        //printf("AIRC3: %f \n\r",A3_Converted);
        //printf("AIRA0: %i \t\t",(int)(A0_Converted/0.05));
        //printf("AIRA1: %i \t\t",(int)(A1_Converted/0.05));
        //printf("AIRA2: %i \t\t",(int)(A2_Converted/0.05));
        //printf("AIRA3: %i \n\r",(int)(A3_Converted/0.05));
        
        
        
        //Air_Pressure_01 = 0x15;
        
        if(max  <A3_Read)
        {
            max=A3_Read;
        }
        
        //printf("AIR Convert: %i \t\t",A3_Converted);
        //printf("AIR: %f \t\t",A3_Read);
        //printf("Max: %f \n\r",max);
        
        char can_msg[8];
        can.reset();    
        can_msg[0] = Air_Pressure_01;
        can_msg[1] = Air_Pressure_02;
        can_msg[2] = Air_Pressure_03;
        can_msg[3] = Air_Pressure_04;
        can_msg[4] = 0xff;
        can_msg[5] = 0xff;
        can_msg[6] = 0xff;
        can_msg[7] = 0xff;
     
        int CAN_ID= 0x18ff4103;
    
        can.write(CANMessage(CAN_ID, can_msg, 8, CANData,CANExtended));
        count++;
        
        if(count >=10)
        {
            LED_1 = !LED_1;
            count =0;
        }
        //wait(1);
        //wait(0.02);
    
    }
}