📄 dmx512.c
字号:
***********************************************************************
*FunName: void SerialIntSer(void) interrupt 4
*
*Discription:
*
*In: None
*
*Out: None
*
*Notes:
*
************************************************************************/
void SerialIntSer(void) interrupt 4
{
if (_testbit_(RI))
{
if (!RB8)
{
if (SBUF == 0) //收到复位信号,设置接收参数。
{
g_bRcv = 1;
g_iCnt = 0;
g_cCnt = 1;
}
}
else
{
if (g_bRcv)
{
if ((g_iCnt >= g_iSysAddr) &&
(g_iCnt < g_iSysAddr + SYS_CHANNEL_NUM))/* //如果当前数据是本机地址到本机最后一个通道之间的数。*/
{
//根据g_cCnt放入缓冲区.
NewRcvData[g_cCnt] = SBUF;
g_cCnt++;
//如果已接收了本机所有通道的数,则暂停,等待下一个复位。
if (g_cCnt == SYS_CHANNEL_NUM + 1)
g_bRcv = 0;
}
g_iCnt++; //DMX512主机发的数据个数计数器
}
}
}
else
{
TI = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -