請大哥們幫看看,我做的是藍牙溫控風扇,下面代碼是一個藍牙串口通信,發送0x05相當于是個自動模式的指令,但是這個自動模式不能實時實現功能,當溫度、設置的最大值Thigh和最小值TLow發生改變時要重新發送指令才能實現發生變化,如果自動模式這個代碼不放在串口通信里面放到main主函數里面又會產生沖突。問一下代碼要怎么修改或者提供下思路,謝謝!!!
void UART_Routine() interrupt 4 {
if (RI) {
RI = 0;
x = SBUF;
switch (x) {
case 0x01: Compare = 0, Speed=0; break;
case 0x02: Compare = 50, Speed=1; break;
case 0x03: Compare = 75, Speed=2; break;
case 0x04: Compare = 100, Speed=3; break;
case 0x05: if (T > THigh) {
Compare = 100;
Speed = 3;
}
else if (T <= THigh && T >= (THigh + TLow) / 2) {
Compare = 75;
Speed = 2;
}
else if (T <= (THigh + TLow) / 2 && T > TLow) {
Compare = 50;
Speed = 1;
}
else {
Compare = 0;
Speed = 0;
}
break;
}
}
}
|