读书人

编写wince的底层驱动应该如果实现比较

发布时间: 2012-02-03 22:02:47 作者: rapoo

编写wince的底层驱动应该如果实现比较精确的uS、mS级延时呢?
比如我想一个GPIO先设为高电平,2uS后就变成低电平。

[解决办法]
用Winbase.h中的QueryPerformanceFrequency、QueryPerformanceCounter 试试看。
[解决办法]
1. WinCE 下是有 us 等的 delay function.
2. Sleep(X) 只能保最短 delay X ms, 法保一定是好是 X ms ( thread priority 有).
3. 用一 for loop 做 delay, 建在 loop 中加取 io 的程式, 它的 delay 不最佳化或是 core clock 更而改.
4. 若真是那 time critical, 建用一 hardware timer, 其成 installable isr, 在 driver 中料好, 在 iisr 中料的每 bit 送出, 待 packet 送完後再返回 sysintr, 通知 driver 的 ist 己 packet 送出完成.
5. 接收要怎做呢?? 直接拉 gpio 中好了.

Paul, Chao @ Techware


[解决办法]

探讨
因为有些芯片既不是IIC控制方式,也不是SPI方式,这种情况我应该怎么样编写WinCE驱动呢。这样我就需要一个uS级的延时,当然延时时间太长和太短都不行。

[解决办法]
探讨
1. WinCE 下是有 us 等的 delay function.
2. Sleep(X) 只能保最短 delay X ms, 法保一定是好是 X ms ( thread priority 有).
3. 用一 for loop 做 delay, 建在 loop 中加取 io 的程式, 它的 delay 不最佳化或是 core clock 更而改.
4. 若真是那 time critical, 建用一 hardware timer, 其成 installable isr, 在 driver 中料好, 在 iisr 中料的每 bit 送出…

读书人网 >WinCE

热点推荐