📄 cmd_dispose.c
字号:
#include "p18cxxx.h"//
extern unsigned char RC_s[10];//关于232通讯数据
extern unsigned char Err[2];//关于外部命令错误
extern unsigned char byte_Count;//字符数组的长度数
extern unsigned char SignalList[3];//关于外部音频信号状态
extern unsigned char channels;
void En_see_bit(void);//设置查询
void Dn_see_bit(void);//设置查询
extern void ctrl_8816(void);//设置8816IC
void Cmd_see_about() //查询命令处理并(调试时)发送应答信息
{
if((RC_s[2]<1)||(RC_s[2]>21))//查错
goto Cmd_see_about_Err;
if(RC_s[1]==1){ //指令正确
channels=RC_s[2]; //建立监察点
//En_see_bit(); //加入到表
goto Cmd_see_about_End;
}
else
if(RC_s[1]==3){ //指令正确
channels=0; //消除监察点
//Dn_see_bit(); //从表消除
goto Cmd_see_about_End;
}
Cmd_see_about_Err:
RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5; //查询错误指令:02 04 bb bb 01
channels=0;
while(PIE1bits.TXIE==1)
_asm CLRWDT _endasm//忙等待
PIE1bits.TXIE=1; //发送中断使能,232发送
Cmd_see_about_End:
;
}
//下面程序不用
void En_see_bit() //信号状态查询对象表对应位设置1
{
unsigned char tmpA=1;
unsigned char tmpB;
tmpB=RC_s[2];
if(tmpB<1)
{
RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5; //查询错误指令:02 04 bb bb 01
channels=0;
while(PIE1bits.TXIE==1)
_asm CLRWDT _endasm//忙等待
PIE1bits.TXIE=1; //发送中断使能,232发送
}
else if(tmpB<8)
{
tmpB-=1;
tmpA<<=tmpB;
SignalList[2]|=tmpA;
}
else if(tmpB<15)
{
tmpB-=8;
tmpA<<=tmpB;
SignalList[1]|=tmpA;
}
else if(tmpB<22)
{
tmpB-=15;
tmpA<<=tmpB;
SignalList[0]|=tmpA;
}
else {
RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5; //查询错误指令:02 04 bb bb 01
channels=0;
while(PIE1bits.TXIE==1)
_asm CLRWDT _endasm//忙等待
PIE1bits.TXIE=1; //发送中断使能,232发送
}
}
void Dn_see_bit()//信号状态查询对象表对应位设置0
{
unsigned char tmpA=1;
unsigned char tmpB;
tmpB=RC_s[2];
if(tmpB<1)
{
RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5; //查询错误指令:02 04 bb bb 01
channels=0;
while(PIE1bits.TXIE==1)
_asm CLRWDT _endasm//忙等待
PIE1bits.TXIE=1; //发送中断使能,232发送
}
else if(tmpB<8)
{
tmpB-=1;
tmpA<<=tmpB;
tmpA^=0xFF;
SignalList[2]&=tmpA;
}
else if(tmpB<15)
{
tmpB-=8;
tmpA<<=tmpB;
tmpA^=0xFF;
SignalList[1]&=tmpA;
}
else if(tmpB<22)
{
tmpB-=15;
tmpA<<=tmpB;
tmpA^=0xFF;
SignalList[0]&=tmpA;
}
else {
RC_s[0]=2;RC_s[1]=4;RC_s[4]=1;byte_Count=5; //查询错误指令:02 04 bb bb 01
channels=0;
while(PIE1bits.TXIE==1)
_asm CLRWDT _endasm//忙等待
PIE1bits.TXIE=1; //发送中断使能,232发送
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -