2019-07-19 20:17发布
spritels 发表于 2019-1-25 15:28 哇哦,很明显我的方法没有判断这个break的时间,所以只要是符合DMX数据格式的都可以接收,这就是所谓的非标准 ...
spritels 发表于 2019-1-25 16:42 SOGA~原谅我一直没弄明白你的意思,原来你真的是要区分开两种信号... 鄙人的想法:设一个定时中断计数,比如 ...
胡松松 发表于 2019-1-25 18:04 正常情况应该是RX收到起始位才开始进入串口中断的,那没收到的话怎么进入串口中断开启定时器啊,我要在什 ...
最多设置5个标签!
谢谢大哥怎么详细的讲解,感激不敬,你让我对DMX信号有了更深的了解,我纠结那个break的时长,是因为当我2种不同信号过来时,我需要辨别出接收模式,当2S信号来了的话,我要将数据保存到eeprom中,如果是标准的数据,我只要接收显示就好了,所以我才这么纠结的
正常情况应该是RX收到起始位才开始进入串口中断的,那没收到的话怎么进入串口中断开启定时器啊,我要在什么时候开启定时器呢?不太明白这里,之前我也是这样想的,但是不知道具体该在哪里开启,麻烦大哥指点下,谢谢
定时器不在串口中断开,而是程序运行就要打开...
我的意思是设一个计数值,比如定时器每100ms中断一次就让它加1,当串口没有中断过来的时候,这个值就会一直往上加,加到一定的数值你就可以判断为无信号输入的状态(当然它快溢出的时候你也要及时处理).当有串口中断过来,你判断到起始数据(第九位为0那个),你就将这个计数值清零.DMX信号的两个起始数据之间间隔是很短的,就算去到1S,那你这个计数值最多也就是计到10就会被清零.接收你说的这个信号也同理,2S的间隔最多也就计到20吧,这样判断这个计数值就可以知道来的信号是DMX还是你说的这个了...
一周热门 更多>