|
看了下DMX512的时序,写了一个程序,主机发送,从机接收,但现在从机收不到据,不知错在哪里,哪位帮我看一下。
void main()
{
while(1){
RDE=1;//发送控制端
nBuffer[1]=255; //总调 nBuffer[]为通道数值
nBuffer[2]=2; //R
nBuffer[3]=50; //G
nBuffer[4]=250; //B
dmxout();
}
}
void dmxout()
{
static uchar tt,ii;
TXD=0;
for(ii=100;ii>0;ii--);//delay 100 us
TXD=1;
for(ii=10;ii>0;ii--);//delay 10 us
TXD=0; //开始位
TB8=0; //
SBUF=0x00; //start-code 起始码
TXD=1; //停止位
for(ii=8;ii>0;ii--);//延时
TI=0;
for(tt=1;tt<4;tt++){ //正常数据
TXD=0; //开始位
TB8=1;
SBUF=(nBuffer[tt]);//通道数值
TXD=1; //停止位
for(ii=8;ii>0;ii--);
TI=0;
}
TXD=1; // 数据包停止位
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
该献的血还是要献的。你不献他不献。难道让我去献? --- 出自坛友:lovejp1981
|