📄 main.c
字号:
//通过RS232口输出故障码
T2SC_TRST=1;
T2SC_TSTOP=0;
if(slide_motor_fault) SCI_show_error(44);
if(back_motor_fault) SCI_show_error(74);
if(front_motor_fault) SCI_show_error(54);
if(rear_motor_fault) SCI_show_error(64);
if(slide_sensor_fault) SCI_show_error(43);
if(back_sensor_fault) SCI_show_error(73);
if(front_sensor_fault) SCI_show_error(53);
if(rear_sensor_fault) SCI_show_error(63);
T2SC_TSTOP=1;
seat_status=none;
break;
case left_mirror_left_begun:
red_led=1;
MsgSent[1]=0x03;
mirror_command(0x30);
seat_status=left_mirror_left;
break;
case left_mirror_left:
mirror_status(0x34);
left_mirror_x=MsgRecv[2];
if(!mirror_left_on){
seat_status=left_mirror_stopped;
}
break;
case left_mirror_right_begun:
red_led=1;
MsgSent[1]=0x04;
mirror_command(0x30);
seat_status=left_mirror_right;
break;
case left_mirror_right:
mirror_status(0x34);
left_mirror_x=MsgRecv[2];
if(!mirror_right_on){
seat_status=left_mirror_stopped;
}
break;
case left_mirror_up_begun:
red_led=1;
MsgSent[1]=0x01;
mirror_command(0x30);
seat_status=left_mirror_up;
break;
case left_mirror_up:
mirror_status(0x34);
left_mirror_y=MsgRecv[3];
if(!mirror_up_on){
seat_status=left_mirror_stopped;
}
break;
case left_mirror_down_begun:
red_led=1;
MsgSent[1]=0x02;
mirror_command(0x30);
seat_status=left_mirror_down;
break;
case left_mirror_down:
mirror_status(0x34);
left_mirror_y=MsgRecv[3];
if(!mirror_down_on){
seat_status=left_mirror_stopped;
}
break;
case right_mirror_left_begun:
red_led=1;
MsgSent[1]=0x03;
mirror_command(0x31);
seat_status=right_mirror_left;
break;
case right_mirror_left:
mirror_status(0x36);
right_mirror_x=MsgRecv[2];
if(!mirror_left_on){
seat_status=right_mirror_stopped;
}
break;
case right_mirror_right_begun:
red_led=1;
MsgSent[1]=0x04;
mirror_command(0x31);
seat_status=right_mirror_right;
break;
case right_mirror_right:
mirror_status(0x36);
right_mirror_x=MsgRecv[2];
if(!mirror_right_on){
seat_status=right_mirror_stopped;
}
break;
case right_mirror_up_begun:
red_led=1;
MsgSent[1]=0x01;
mirror_command(0x31);
seat_status=right_mirror_up;
break;
case right_mirror_up:
mirror_status(0x36);
right_mirror_y=MsgRecv[3];
if(!mirror_up_on){
seat_status=right_mirror_stopped;
}
break;
case right_mirror_down_begun:
red_led=1;
MsgSent[1]=0x02;
mirror_command(0x31);
seat_status=right_mirror_down;
break;
case right_mirror_down:
mirror_status(0x36);
right_mirror_y=MsgRecv[3];
if(!mirror_down_on){
seat_status=right_mirror_stopped;
}
break;
case left_mirror_stopped:
MsgSent[1]=0x00;
mirror_command(0x30);
seat_status=none;
break;
case right_mirror_stopped:
MsgSent[1]=0x00;
mirror_command(0x31);
seat_status=none;
break;
case none:
SPI33972(0x0C,0x00,0x39,0x0C,0x00,0x39); //33972进入睡眠模式
if(slide_motor_fault||back_motor_fault||front_motor_fault||rear_motor_fault||slide_sensor_fault||back_sensor_fault||front_sensor_fault||rear_sensor_fault){ //有故障发生
green_led=1; //绿色故障指示灯点亮
SPI33689(0x13); //33689关闭高端开关HS1,HS2,保留HS3导通
}else{
green_led=0;
SPI33689(0x03); //33689关闭高端开关HS1,HS2,HS3
}
red_led=0; //红灯灭
asm{ //gr16进入睡眠模式
stop;
}
}
}
}
interrupt void TBM(void){
TBCR_TACK=1;
TBCR_TBON=0;
if(slide_direction==forward||slide_direction==backward) {
if(!slide_sensor_exist_flag){
slide_sensor_fault=1; //滑动电机的传感器电路发生故障
}
}
if(back_direction==counterclockwise||back_direction==clockwise) {
if(!back_sensor_exist_flag){
back_sensor_fault=1; //滑动电机的传感器电路发生故障
}
}
if(front_direction==up||front_direction==down) {
if(!front_sensor_exist_flag){
front_sensor_fault=1; //滑动电机的传感器电路发生故障
}
}
if(rear_direction==up||rear_direction==down) {
if(!rear_sensor_exist_flag){
rear_sensor_fault=1; //滑动电机的传感器电路发生故障
}
}
if((seat_status==memory1_wait3S)||(seat_status==memory2_wait3S)||(seat_status==memory3_wait3S)||(seat_status==wait_for_show)){
timer_counter++;
TBCR_TBON=1;
}
if(seat_status==recall1||seat_status==recall2||seat_status==recall3||seat_status==handed_recall1||seat_status==handed_recall2||seat_status==handed_recall3||seat_status==reverse_recall){
mirror_timer++;
TBCR_TBON=1;
}
if(seat_status==show_error){
if(inter_time_flag){
delay_time++;
TBCR_TBON=1;
}else{
green_led=~green_led;
TBCR_TBON=1;
if(tens_flag) tens_digit++;
else number++;
}
}
}
interrupt void inputcapture(void){
UINT8 temp;
temp=T2SC0;
T2SC0_CH0F=0;
if(slide_direction==forward){
slide_current_position--;
slide_sensor_exist_flag=1;
}
if(slide_direction==backward){
slide_current_position++;
slide_sensor_exist_flag=1;
}
if(back_direction==counterclockwise){
back_current_position++;
back_sensor_exist_flag=1;
}
if(back_direction==clockwise){
back_current_position--;
back_sensor_exist_flag=1;
}
if(front_direction==up){
front_current_position++;
front_sensor_exist_flag=1;
}
if(front_direction==down){
front_current_position--;
front_sensor_exist_flag=1;
}
if(rear_direction==up){
rear_current_position++;
rear_sensor_exist_flag=1;
}
if(rear_direction==down){
rear_current_position--;
rear_sensor_exist_flag=1;
}
}
interrupt void keyint(void){
UINT8 i;
i=0xff;
while(i--);
PCTL_BCS=1;
SPI33689(0x1f);
while(!PTA_PTA2)
{
CS_33972=0;
CS_33972=1;
}
SPI33972(0x00,0x00,0x00,0x00,0x00,0x00);
SPI33972(0x00,0x00,0x00,0x00,0x00,0x00);
door_closed=switchstatus[1]&door;
ignition_on=switchstatus[1]&ignition;
auto_on=switchstatus[1]&autoflag;
set_on=switchstatus[1]&set;
key1_on=switchstatus[1]&key1;
key2_on=switchstatus[1]&key2;
key3_on=switchstatus[1]&key3;
slide_forward_on=switchstatus[2]&slide_forward_flag;
slide_backward_on=switchstatus[2]&slide_backward_flag;
back_counterclockwise_on=switchstatus[2]&back_counterclockwise_flag;
back_clockwise_on=switchstatus[2]&back_clockwise_flag;
front_up_on=switchstatus[2]&front_up_flag;
front_down_on=switchstatus[2]&front_down_flag;
rear_up_on=switchstatus[2]&rear_up_flag;
rear_down_on=switchstatus[2]&rear_down_flag;
reverse_on=switchstatus[5]&reverse;
park_on=switchstatus[5]&park;
right_mirror=switchstatus[5]&left_right_flag;
mirror_right_on=switchstatus[5]&mirror_right;
mirror_left_on=switchstatus[5]&mirror_left;
mirror_up_on=switchstatus[5]&mirror_up;
mirror_down_on=switchstatus[5]&mirror_down;
if((!door_closed)&&ignition_on&&park_on&&(!set_on)){
if(seat_status==none){
seat_status=wait_for_show;
}
}
if((!door_closed)&&ignition_on&&set_on&&slide_forward_on){
if(seat_status==none){
seat_status=slide_forward_begun;
}
}
if((!door_closed)&&ignition_on&&set_on&&slide_backward_on){
if(seat_status==none){
seat_status=slide_backward_begun;
}
}
if((!door_closed)&&ignition_on&&set_on&&back_counterclockwise_on){
if(seat_status==none){
seat_status=back_counterclockwise_begun;
}
}
if((!door_closed)&&ignition_on&&set_on&&back_clockwise_on){
if(seat_status==none){
seat_status=back_clockwise_begun;
}
}
if((!door_closed)&&ignition_on&&set_on&&front_up_on){
if(seat_status==none){
seat_status=front_up_begun;
}
}
if((!door_closed)&&ignition_on&&set_on&&front_down_on){
if(seat_status==none){
seat_status=front_down_begun;
}
}
if((!door_closed)&&ignition_on&&set_on&&rear_up_on){
if(seat_status==none){
seat_status=rear_up_begun;
}
}
if((!door_closed)&&ignition_on&&set_on&&rear_down_on){
if(seat_status==none){
seat_status=rear_down_begun;
}
}
if((!door_closed)&&ignition_on&&mirror_left_on&&set_on&&(!right_mirror)){
if(seat_status==none){
seat_status=left_mirror_left_begun;
}
}
if((!door_closed)&&ignition_on&&mirror_right_on&&set_on&&(!right_mirror)){
if(seat_status==none){
seat_status=left_mirror_right_begun;
}
}
if((!door_closed)&&ignition_on&&mirror_left_on&&set_on&&right_mirror){
if(seat_status==none){
seat_status=right_mirror_left_begun;
}
}
if((!door_closed)&&ignition_on&&mirror_right_on&&set_on&&right_mirror){
if(seat_status==none){
seat_status=right_mirror_right_begun;
}
}
if((!door_closed)&&ignition_on&&mirror_up_on&&set_on&&(!right_mirror)){
if(seat_status==none){
seat_status=left_mirror_up_begun;
}
}
if((!door_closed)&&ignition_on&&mirror_down_on&&set_on&&(!right_mirror)){
if(seat_status==none){
seat_status=left_mirror_down_begun;
}
}
if((!door_closed)&&ignition_on&&mirror_up_on&&set_on&&right_mirror){
if(seat_status==none){
seat_status=right_mirror_up_begun;
}
}
if((!door_closed)&&ignition_on&&mirror_down_on&&set_on&&right_mirror){
if(seat_status==none){
seat_status=right_mirror_down_begun;
}
}
if((!door_closed)&&ignition_on&&set_on&&key1_on){
if(seat_status==none){
seat_status=memory1_wait3S;
}
}
if((!door_closed)&&ignition_on&&set_on&&key2_on){
if(seat_status==none){
seat_status=memory2_wait3S;
}
}
if((!door_closed)&&ignition_on&&set_on&&key3_on){
if(seat_status==none){
seat_status=memory3_wait3S;
}
}
if((!ignition_on)&&set_on&&key1_on&&(!reverse_on)){
if(!door_closed){
if(seat_status==none||seat_status==recall2||seat_status==recall3){ //停止当前正在进行的调用,开始新的调用
current_recall_stopped=1;
seat_status=recall1;
}
}else{
if(seat_status==none){
seat_status=handed_recall1;
}
}
}
if(!key1_on){
if(seat_status==handed_recall1){
current_recall_stopped=1;
seat_status=none;
}
}
if((!ignition_on)&&set_on&&key2_on&&(!reverse_on)){
if(!door_closed) {
if(seat_status==none||seat_status==recall1||seat_status==recall3){ //停止当前正在进行的调用,开始新的调用
current_recall_stopped=1;
seat_status=recall2;
}
}else{
if(seat_status==none){
seat_status=handed_recall2;
}
}
}
if(!key2_on){
if(seat_status==handed_recall2){
current_recall_stopped=1;
seat_status=none;
}
}
if((!ignition_on)&&set_on&&key3_on&&(!reverse_on)){
if(!door_closed) {
if(seat_status==none||seat_status==recall1||seat_status==recall2){
current_recall_stopped=1; //停止当前正在进行的调用,开始新的调用
seat_status=recall3;
}
}else{
if(seat_status==none){
seat_status=handed_recall3;
}
}
}
if(!key3_on){
if(seat_status==handed_recall3){
current_recall_stopped=1;
seat_status=none;
}
}
if((!ignition_on)&&set_on&&reverse_on) {
seat_status=reverse_recall;
}
}
interrupt void AD(void){
SAMPLE_VOLTAGE=ADR;
ADSCR=0x43;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -