📄 dmx512recieveprogram.txt
字号:
#pragma interrupt_handler uart0_rx_isr:19
void uart0_rx_isr(void)
{
uchar temp,resh,resl,DMX_Status;
//PORTC^=BIT(3);
//resh=UDR0;
DMX_Status=UCSR0A;
resh=UCSR0B;
resl=UDR0;
//if(UCSR0A&(1<<4))
//resh=(resh>>1)&0x01; // TAKE RXB8
//if(resh==0) //(1<<RXB8))
if(DMX_Status&(1<<FE0))//|(1<<DOR0)) //test error frame
{
//Start=1;
//n=0;
//mm=1;
Break_flag=1;
// UCSR0A&=~(1<<FE0);
}
///***
if(Break_flag==1)
{ ///***
Break_flag=0;
//temp=resl;
if(resl==0)
{
//PORTC=~BIT(3);
Start=1;
n=0;
mm=1;
}
//
} //**/
if(Start)
{
if((n>=address)&&(n<address+4))
{
m[n-address]=resl;//resl;
mm++;
}
//如果已接收了本机所有通道的数,则暂停,等待下一个复位。
if (mm==5)
Start=0;
}
n++; //DMX512主机发的数据个数计数器
}
按照流程图来写的,为什么收不到信号,那位大侠指点一下!!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -