📄 serial.c
字号:
#include "res.h"
#define STOPGTD 'P'
#define STARTGTD 'S'
#define uint16 unsigned int
extern bit ensend;
extern void InitTimer0(unsigned char);
extern unsigned char csw,ssw;
//extern uchar rdc32(void); //read cs5532
extern void wrc32(uchar);
extern void delay(unsigned char);
extern long data vda[9];
//extern uchar twait;
void Receive(void) interrupt 4
{
uint16 dly=1000;//允许超时时间
bit kk;
unsigned char cmd,i;
if(TI)
return;
EA=0;//接收完毕后再退出,不使用中断
//接收数据
cmd=SBUF;
RI=0;
switch(cmd)
{
case STOPGTD ://停止数据采集
ensend=0;
break;
case STARTGTD ://启动发送
//超时处理
while(!RI)
{
if(--dly==0)
goto exit;
}
RI=0;
cmd=SBUF;
if(cmd>=0 && cmd<=3)
{ssw=cmd;
csw=ssw;}
dly=1000;
while(!RI)
{
if(--dly==0)
goto exit;
}
RI=0;
cmd=SBUF;
InitTimer0(cmd);
//cs5532设置
EX0=0;
kk=SDO_32;
while(kk==1)kk=SDO_32;
SDI_32=1;
rdc32();
rdc32();
rdc32();
rdc32();
rdc32();//停止上一模式
wrc32(C32ISTART+csw*8);//START a new method
delay(10);
twait=15;
/*用于转换延时
SDO_32=1;
kk=SDO_32;
while(kk==1)kk=SDO_32;
delay(200);
for(i=0;i<=7;i++); vda[i]=0;
while(vda[7]==0);
delay(200);
*/
EX0=1;
ensend=1;
break;
default:break;
}
exit:
EA=1;
return;
//*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -