精确定时
描述:现有一个项目,需要每隔26毫秒(必须精准)将语音数据(大约600byte),通过UDP方式发送数据到嵌入式设备。因嵌入式设备提供的缓冲区只有10K大小,故要求计算机发送速度不能太快,太快缓冲区溢出;太慢嵌入式设备无法获得语音数据用于播放,处于停顿。
目前处理方法:
1、采用的是多媒体定时器。采用的26毫秒定时触发一次,但通过网络抓包和程序日志发现定时器,其不能确保在26毫秒就触发了,可能是15.25毫秒也可能是31毫秒或26毫秒触发的,因时间的累积效应,终会导致嵌入式设备缓冲区溢出。也试图模拟缓冲区大小进行速度控制,但发现几乎无法控制正确。程序是多线程的。
问:
1、可有精准按时触发的?
(网络上提供的很多高精度,基本都是单线程和占用极高CPU来实现的,不适合本项目)
2、求其他解决方案。
(硬件缓冲区,目前无法调大)