最近做个灯遇到这个麻烦。
灯为32颗,由主IC与从IC单片机处理,都是STC的。主IC处理程序,从IC点灯。
DMX通讯时,出现,渐变程序比非通讯时程序慢很多,还有设为高地址时频闪(亮灭)快时也跟不上节拍。
DMX512协议是250Kb/S波特率。如果地址为500,那就要接收500多个后单片机再处理程序,通讯就占了至少2~3ms,再要发32数个给从IC。频闪速度为100次/S,也就是10mS每次。当接收完一串DMX数据后,再发32个给LED,再发时占用了串口(RS485),应会导致错过下一串数据的接收,也就是当再接收好一串据时已超过了频闪的时间(还没算进单片机的处理占用的时间)。出现的是频闪跟不上~~~
渐变程序不如非通讯时的快(虽然其它的跳变程序看起来差不多快),原因估计是其它跳变程序变化只大笔循环中变化一次,而渐变要256次才一个过程,积累了通讯中断所占用的延时导致的。
速个灯的程序都写完了,就剩这两个问题,调了几天了,找到问题不知道该怎么搞了!!!晕呀!!!
可把频闪发个从IC处理,应可解决这个问题,但不想再改从机,不然通讯又要做变动。
渐变慢,是不是可以把非通讯时也补个廷时,看起和通讯状态下一样了,但觉得会慢很多````
怎么办?有搞过这方面的朋友不吝指点一下呀!!! |