积极答复者
数据采集IST?

问题
答案
-
不知道你是否了解WINCE MDD/PDD 的驱动模型,
在此首先要理解,流接口,应用程序,IST的关系。
例如:应用程序调用流接口向驱动要数据,流接口的工作就是将IST读到的数据返回给应用程序,IST的工作就是在中断发生后立刻将数据读走。
所以按你的描述,我觉得你应按如下方式实现就足够了,
1. IST 程序在中断发生后立刻将数据读到自己的缓冲区中
2. 你的应用程序在需要时调用流接口,将IST缓冲区的数据读走进行处理就可以了
关于IST的 程序如何处理,请看MSDN,链接如下:
http://msdn.microsoft.com/en-us/library/ms892415.aspx- 已标记为答案 阿达 2009年10月25日 14:26
全部回复
-
ISR响应之后将会激活IST等待的事件,IST的主要任务就是在事件激活后,读取数据到自己的缓冲区。
不知道你用的WINCE是哪个版本,如果是CE60之前的版本,可以直接将IST功能写在自己的应用程序里来读取数据,应用程序直接拿到数据后可以使用。
如果是CE60的版本,还是需要应用程序使用ADC_Read流接口的方式来读数据,之后再使用。
在此首先要理解,流接口,应用程序,IST的关系。
例如:应用程序调用流接口向驱动读数据,流接口的工作就是将IST读到的数据返回给应用程序- 已编辑 刘振中[John lau] 2009年10月22日 8:48
- 已建议为答案 万维网 2009年10月22日 9:29
-
不知道你是否了解WINCE MDD/PDD 的驱动模型,
在此首先要理解,流接口,应用程序,IST的关系。
例如:应用程序调用流接口向驱动要数据,流接口的工作就是将IST读到的数据返回给应用程序,IST的工作就是在中断发生后立刻将数据读走。
所以按你的描述,我觉得你应按如下方式实现就足够了,
1. IST 程序在中断发生后立刻将数据读到自己的缓冲区中
2. 你的应用程序在需要时调用流接口,将IST缓冲区的数据读走进行处理就可以了
关于IST的 程序如何处理,请看MSDN,链接如下:
http://msdn.microsoft.com/en-us/library/ms892415.aspx- 已标记为答案 阿达 2009年10月25日 14:26
-
不知道你是否了解WINCE MDD/PDD 的驱动模型,
在此首先要理解,流接口,应用程序,IST的关系。
例如:应用程序调用流接口向驱动要数据,流接口的工作就是将IST读到的数据返回给应用程序,IST的工作就是在中断发生后立刻将数据读走。
所以按你的描述,我觉得你应按如下方式实现就足够了,
1. IST 程序在中断发生后立刻将数据读到自己的缓冲区中
2. 你的应用程序在需要时调用流接口,将IST缓冲区的数据读走进行处理就可以了
关于IST的 程序如何处理,请看MSDN,链接如下:
http://msdn.microsoft.com/en-us/library/ms892415.aspx
我现在也在做类似的开发,但我遇到一个问题,我是在驱动IST读取了一定长度的数据后给应用程序发送事件通知,然后应用程序调用流接口将IST缓冲区的数据读走,但是我发现,每次应用程序来读的时候,都会导致驱动IST丢掉一个中断,也就丢了一包数据。我理解,是不是因为应用程序和驱动的IST是两个线程,当应用程序线程执行时,线程切换时间较长,会导致IST中断丢失呢?请问,是否遇到过这样的情况呢?是如何处理的呢? -
我现在也在做类似的开发,但我遇到一个问题,我是在驱动IST读取了一定长度的数据后给应用程序发送事件通知,然后应用程序调用流接口将IST缓冲区的数据读走,但是我发现,每次应用程序来读的时候,都会导致驱动IST丢掉一个中断,也就丢了一包数据。我理解,是不是因为应用程序和驱动的IST是两个线程,当应用程序线程执行时,线程切换时间较长,会导致IST中断丢失呢?请问,是否遇到过这样的情况呢?是如何处理的呢?
“驱动IST读取了一定长度的数据后给应用程序发送事件通知”如何实现的?
下面是以前搜集的办法
应用程序事先将一个缓冲区地址传递给驱动程序,驱动程序调用MapPtrToProcess映射应用程序传递过来的地址,当驱动程序调用SendNotifyMessage后应用程序可以直接到该地址中读取数据。