阅读:1439回复:7
关于频繁中断的处理
请教各位大侠,本人正在2440上做一个RF模块驱动。
硬件上就是一个IO口来接收RF模块发送过来的数据。 发送数据的协议简单点说就是当发过来一个持续6MS的高电平后开始发送一组数据。没有数据时是一些杂波。现在我通过这个IO口的下降沿来检测这个持续6Ms的高电平,所以大部分时间系统都在中断而变得很慢。各位有什么好的处理方法没??感谢了。 |
|
|
沙发#
发布于:2007-12-03 22:18
最好不要用CPU做这种低等的事情,
如果在ISR中处理这些事情而不是在IST中,速度还是慢,就没有办法了. |
|
|
板凳#
发布于:2007-12-04 11:51
谢版主。
最近又看了一下WINCE实时性的一些资料,中断延迟,线程切换,任务切换等时间都需要上百MS了,好像硬件上还得加一个单片机来专门接收这部分数据了。看来wince的实时性还是不够。 |
|
|
地板#
发布于:2007-12-04 20:28
对,最好用个别的东西把数据转成BYTE型的数.
WINCE的实时性也不像你说的那么差, 我在一个很慢的系统上测过IST平均响应速度是20us |
|
|
地下室#
发布于:2007-12-05 22:15
我用IO接收1.2K波特率的数据,WINCE就跟不上了,经常掉数据。
|
|
5楼#
发布于:2007-12-07 17:27
版主看一下这个数据准不??好像是MS公布的。
Let's take a look at the numbers on an AMD K6 500Mhz-based CEPC system. Table 2. ILTiming results ISR Starts IST Starts Minimum 1.6 µs 23.5 µs Average 3.1 µs 32.2 µs Maximum 10.6 µs 122.6 µs 再加上线程切换,任务抢占延迟的时间,估计系统也还是达不到MS级。 |
|
|
6楼#
发布于:2007-12-09 08:09
CEPC上我不清楚,不过看起来差不多.
不过我的200M ARM比它要好点, ISR没测,IST平均18 us,但最大有好几百. 但我的测试效率很高,比CE标准的方法效率高. |
|
|
7楼#
发布于:2007-12-13 21:05
楼主,我用的是2442,跟2440是一样的.我刚用了一个PWM Timer,频率是2k , 但是丝毫不感觉到系统会慢啊. 发送数据的协议是你自己定的还是标准呢.
|
|