首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

wince6.0上实现2us一次的定时中断并进行中断处理

2013-01-08 
wince6.0下实现2us一次的定时中断并进行中断处理需要怎么做啊?大致说个思路也行!抓狂死了![解决办法]可以

wince6.0下实现2us一次的定时中断并进行中断处理
需要怎么做啊?大致说个思路也行!抓狂死了!
[解决办法]
可以用gpio模拟PWM产生你需要的方波,使用PWM定时器产生定时中断,然后在IRQ中进行电平翻转,定时器的开关可以在驱动或应用层中控制。这样就可以随时控制你的方波产生,具体能产生多少Hz或KHz的方波,要看你使用的定时器和精确度
[解决办法]
100Hz = 10mS
10mS / 100 = 100 uS, 所以 LZ 要的應該是 100 uS 一次中斷.

1. 用 CPU 內建 PWM controller 來做, 都不用產生 interrupt, 對系統 overhead 最小, 故為最佳解.
2. 用 CPU 閒置 H/W timer 來做, H->L 的時間產生一次 interrupt, L->H again, 故一秒 100Hz * 2 = 200 次 interrupt, 需修改 OEMInterruptHandler, WinCE6 應可應付.
3. 用 CPU 閒置 H/W timer 來做, 每 100uS 產生一次 interrupt, 判斷 dutycycle 到達時切換 GPIO, 
需修改 OEMInterruptHandler.
4. 每 2uS 產生一次 interrupt??? 系統可能會跟烏龜在跑一樣.

Paul, Chao @ Techware

热点排行