51单片机+SYN6288模块,串口被设置最高中断优先级,在串口中断中调用了个播报温度的程序,大概有5秒左右,我想在播报的时候继续定时器中断,这种怎么解决?
我想在调用时在中间延时那里关闭串口,但听说这样好像会锁死,能不能帮忙解决一下。
void TempSyn()//播报温度
{
P0=0XFF;
SYN_FrameInfo(0, "[v8][t5]当前温度是");
Delay1000ms();
Delay1000ms();
switch(temp/10)
{
case 0:
break;
case 1:
SYN_FrameInfo(0, "[v8][t5]十");
break;
case 2:
SYN_FrameInfo(0, "[v8][t5]二十");Delay500ms();
break;
case 3:
SYN_FrameInfo(0, "[v8][m0][t5]三十");Delay500ms();
break;
case 4:
SYN_FrameInfo(0, "[v8][m0][t5]四十");Delay500ms();
break;
case 5:
SYN_FrameInfo(0, "[v8][m0][t5]五十");Delay500ms();
break;
case 6:
SYN_FrameInfo(0, "[v8][m0][t5]六十");Delay500ms();
break;
case 7:
SYN_FrameInfo(0, "[v8][m0][t5]七十");Delay500ms();
break;
default: break;
}
Delay500ms();
switch(temp%10)
{
case 0:
break;
case 1:
SYN_FrameInfo(0, "[v8][t5]一");
break;
case 2:
SYN_FrameInfo(0, "[v8][t5]二");
break;
case 3:
SYN_FrameInfo(0, "[v8][t5]三");
break;
case 4:
SYN_FrameInfo(0, "[v8][t5]四");
break;
case 5:
SYN_FrameInfo(0, "[v8][t5]五");
break;
case 6:
SYN_FrameInfo(0, "[v8][t5]六");
break;
case 7:
SYN_FrameInfo(0, "[v8][t5]七");
break;
case 8:
SYN_FrameInfo(0, "[v8][t5]八");
break;
case 9:
SYN_FrameInfo(0, "[v8][t5]九");
break;
}
Delay500ms();
SYN_FrameInfo(0, "[v8][t5]点");
Delay500ms();
switch(xs)
{
case 0:
SYN_FrameInfo(0, "[v8][t5]零");
break;
case 1:
SYN_FrameInfo(0, "[v8][t5]一");
break;
case 2:
SYN_FrameInfo(0, "[v8][t5]二");
break;
case 3:
SYN_FrameInfo(0, "[v8][t5]三");
break;
case 4:
SYN_FrameInfo(0, "[v8][t5]四");
break;
case 5:
SYN_FrameInfo(0, "[v8][t5]五");
break;
case 6:
SYN_FrameInfo(0, "[v8][t5]六");
break;
case 7:
SYN_FrameInfo(0, "[v8][t5]七");
break;
case 8:
SYN_FrameInfo(0, "[v8][t5]八");
break;
case 9:
SYN_FrameInfo(0, "[v8][t5]九");
break;
}
Delay500ms();
SYN_FrameInfo(0, "[v8][t5]度");
}