?? stable_8ahead_8back.c
字號:
//前面八路普通傳感器輸入。xin
unsigned char Sensor_Ahead; //8 Normal Sensors Input
unsigned char Sensor_Back; //后部加八路普通的光電傳感器
unsigned char reverse_value(unsigned char temp)
{
unsigned char temp0=0;
//將字節數據:d7d6d5d4d3d2d1d0 轉換成為 d0d1d2d3d4d5d6d7數據
temp0 |= (temp<<7)&(1<<7);
temp0 |= (temp<<5)&(1<<6);
temp0 |= (temp<<3)&(1<<5);
temp0 |= (temp<<1)&(1<<4);
temp0 |= (temp>>7)&(1<<0);
temp0 |= (temp>>5)&(1<<1);
temp0 |= (temp>>3)&(1<<2);
temp0 |= (temp>>1)&(1<<3);
return temp0;
}
//前排取八路普通傳感器輸入
void read_sensor ( void ) //讀取前后排傳感器
{
unsigned char temp_ahead;
unsigned char temp_back;
//所有傳感器輸入為低電平有效,前排傳感器和PA口的對應情況
//左 PA7, PA6, PA5, PA4, PA3, PA2, PA1, PA0 右//
temp_ahead = PINA;
temp_back = PINC;
//將傳感器器信號轉換成高電平有效,即轉換成字節數據。
Sensor_Ahead = ~reverse_value(temp_ahead);
Sensor_Back = ~reverse_value(temp_back);
}
//========讀傳感器=========
//輸入為本次采樣后經過轉換后的傳感器字節數據和前一次傳感器的字節數據
unsigned int judge_sensor(unsigned char sensor_inform , unsigned int pre_num_case )
{
unsigned int num_case;
switch ( sensor_inform )
{
case 0x01 : // * * * * * * * +
num_case = 1;
break;
case 0x03 : // * * * * * * + +
num_case = 2;
break;
case 0x07 : // * * * * * + + +
case 0x02 : // * * * * * * + *
num_case = 3;
break;
case 0x06 : // * * * * * + + *
num_case = 4;
break;
case 0x0E : // * * * * + + + *
case 0x04 : // * * * * * + * *
num_case = 5;
break;
case 0x0C : // * * * * + + * *
num_case = 6;
break;
case 0x1C : //* * * + + + * *
case 0x08 : // * * * * + * * *
num_case = 7;
break;
case 0x18 : // * * * + + * * *
num_case = 8;
break;
case 0x38 : // * * + + + * * *
case 0x10 : // * * * + * * * *
num_case = 9;
break;
case 0x30 : // * * + + * * * *
num_case = 10;
break;
case 0x70 : // * + + + * * * *
case 0x20 : // * * + * * * * *
num_case = 11;
break;
case 0x60 : // * + + * * * * *
num_case = 12;
break;
case 0xE0 : // + + + * * * * *
case 0x40 : // * + * * * * * *
num_case = 13;
break;
case 0xC0 : // + + * * * * * *
num_case = 14;
break;
case 0x80 : // + * * * * * * *
num_case = 15;
break;
default :
num_case = pre_num_case;
}
return num_case; //返回前部八路傳感器的在線狀態值。
}
signed int value_change_Jiaodu (signed char jiaodu)
{
signed int num_case;
num_case = 70*jiaodu; //誤差線性放大,
return num_case;
}
signed int value_change_Weizi(signed char weizi)
{
signed int num_case;
num_case = 10*weizi;
return num_case;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -