发表于:2003-07-29 17:50:00
1楼
可以计算得知概数. 相关因素包含采样频率, 多工系统的 delay, 数据搬移至 buffer 的时间...
举例来说: 1K words FIFO 用 1Khz 的采样频率, 只要 1 秒钟(再多一点点)的时间即会 overflow. 而 Windows 的 delay 约为数十个 us 至数百个 ms 之间. 在此情形下, 若是每秒去搬移一次全部的 FIFO data, 可能还 OK 吧!
若改用 10Khz 的采样频率, 那就约 100ms 的时间, 1K words FIFO 就会被填满了. 而 100ms 对于 Windows 的 delay 而言太小了些, 所以 FIFO overflow 的机会也就大增了(ISR or Application 可能还没有机会搬移 data, FIFO 就 overflow 了).
这边说的 Windows delay, 指的是 Interrupt latency... 之类的东西. 也就是说, 从 Interrupt 产生, 到开始 work 为止, 其所用掉的时间并不固定, 可能很短 (数十个 us) , 也可能很长 (数百个 ms).
当然, 这边都只是概略的计算而已.