主题:外部IRQ打开失败 共有57454人关注过本帖 |
---|
123 |
1楼 |
![]() |
外部IRQ打开失败 ![]()
你好,请问一个问题。
在使用光盘提供的例程函数,InstallexternIRQ()进行外部中断的启动时,为何会提示打开失败,跳出程序? |
单帖管理 | 引用 | 回复 ![]() |
zhl |
2楼 |
![]() |
![]()
请问购买的是什么型号的板卡。
提示打开失败,一般是由于内核中没有安装IRQ的驱动,需寄回给我们更新WinCE的内核。 |
单帖管理 | 引用 | 回复 ![]() |
123 |
3楼 |
![]() |
![]()
2个星期前从贵公司购买的6块EM9260开发板。
使用提供的IRQ例程: BOOL CEM9260_IRQ::OpenIRQ() {    if (hIRQ!=INVALID_HANDLE_VALUE)         return true; } hIRQ=InstallExternIRQ(); if (hIRQ==NVALID_HANDLE_VALUE) {         return false; } 执行到此时,程序就跳出了。 |
单帖管理 | 引用 | 回复 ![]() |
123 |
4楼 |
![]() |
![]()
不好意思,叙述的错了。
程序运行到GetExternIRQEvent()时,无法向下再执行。 请问是何原因?谢谢! |
单帖管理 | 引用 | 回复 ![]() |
zhl |
5楼 |
![]() |
![]()
请检查IRQ1所接的外部中断信号,估计是中断的频率太高造成了任务死锁。
|
单帖管理 | 引用 | 回复 ![]() |
123 |
6楼 |
![]() |
![]()
IRQ外接的为AD转换结束的EOC信号,采样频率大约为150K,大约7us.
请问,IRQ的中断响应时间及API_FullDuplex这条指令分别为多少执行时间? 谢谢 |
单帖管理 | 引用 | 回复 ![]() |
x10 |
7楼 |
![]() |
![]()
WinCE作为一个多任务的操作系统,对硬件中断的响应具有一定的不确定性,从软件层次上看,对外部事件又分为驱动程序响应和应用程序响应,驱动程序的响应不确定性最大有50us,而应用程序则可能长达300us。解决不确定性的方法是设置多级缓冲,比方若外部数据间隔小于或与50us相当,则需要设置硬件buffer,一般是FIFO,当FIFO存储一定数据再产生中断,由驱动程序一次性读入;而应用程序则处理批量数据。
从所描述的应用看,硬件上需要加FIFO,并完成AD采集(一般由CPLD或其他硬件逻辑电路完成),以获得严格时间间隔的波形数据,以进行后续的时间分析,如脉冲分析、FFT等。 如果AD数据并不需要严格的时间间隔,则可以不用外部中断,直接采用系统定时来启动AD数据的采集。 |
单帖管理 | 引用 | 回复 ![]() |