主题 : ADC应用程序的问题(其实就是设备名问题) 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 20846
精华: 0
发帖: 19
金钱: 95 两
威望: 19 点
综合积分: 38 分
注册时间: 2010-05-08
最后登录: 2014-07-19
楼主  发表于: 2010-07-27 16:44

 ADC应用程序的问题(其实就是设备名问题)

mini2440(micro2440) + wince 5.0里面ADC应用程序里面,我想用CreateFile来打开设备,它的设备名是不是ADC0: (或ADC1:....), 我试了ADC0: ADC1: ADC2: ADC3:都打不开,GetLastError()提示错误号55(指定的网络资源或设备不再可用。)

我看BBS里面有些ADC的应用程序。根本就没用CreateFile,而是用的OnCopyData???非常不解

我用友善的测试程序,AD-CONVERT就可以正常。请问如何解决。 非常感谢
级别: 新手上路
UID: 20846
精华: 0
发帖: 19
金钱: 95 两
威望: 19 点
综合积分: 38 分
注册时间: 2010-05-08
最后登录: 2014-07-19
1楼  发表于: 2010-07-27 16:52
晕,为什么TOUCH驱动里面会有:
static DWORD WINAPI ADCThreadProc(LPVOID lpParameter)
{
    HANDLE DriverEvent = CreateEvent(NULL, FALSE, FALSE, L"ADC_EVENT_FROM_FRIENDLYARM");
    if (DriverEvent == NULL) {
        RETAILMSG(1, (L"Cannot alloc object for ADC driver"));
        return 0;
    }
    for (;;) {

        DWORD ret = WaitForSingleObject(DriverEvent, INFINITE);
        if (ret != WAIT_OBJECT_0) {
            RETAILMSG(1, (L"Unknown error\n"));
            return 0;
        }

        HWND Wnd = FindWindow(L"Dialog", L"ADC Testing");
        if (Wnd == NULL) {
            RETAILMSG(TS_DBGON, (L"Cannot Find the Window\n"));
        } else {
            DWORD ADCValue = (DWORD)GetADCValue();
            COPYDATASTRUCT cp;
            cp.dwData = ADCValue;
            cp.cbData = 0;
            cp.lpData = NULL;
            SendMessage(Wnd, WM_COPYDATA, NULL, (LPARAM)(&cp));

        }

    }
    return 0;
}
级别: 新手上路
UID: 18854
精华: 0
发帖: 19
金钱: 95 两
威望: 19 点
综合积分: 38 分
注册时间: 2010-04-13
最后登录: 2010-08-15
2楼  发表于: 2010-08-01 21:31
哪位高手赶快分析一下????????
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
3楼  发表于: 2010-08-02 09:27
由于现在的WInCE6.0的触摸屏驱动里集成了ADC驱动(因为触摸屏需要ADC采样,得到手指的坐标,故而你会看到ADC驱动)。在上层应用程序区访问ADC时,操作步骤如下:先建立一个对话框名为"ADC Testing"(HWND Wnd = FindWindow(L"Dialog", L"ADC Testing"););再声明一个句柄,打开事件:HANDLE ehandle = OpenEvent(EVENT_ALL_ACCESS,FALSE,_T("ADC_EVENT_FROM_FRIENDLYARM"));再设置事件SetEvent(ehandle);然后应用程序会去调用驱动;建立 WM_COPYDATA函数,得到“OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)”,在设置事件后,由底层驱动发送过来的数据会被该函数抓取,COPYDATASTRUCT cds;cds = *pCopyDataStruct;m_Data = cds.dwData;,得到数据m_Data 。
级别: 新手上路
UID: 25975
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2010-08-01
最后登录: 2010-11-17
4楼  发表于: 2010-08-09 22:56

 回 3楼(libailiang) 的帖子

那C#能实现AD转换不?
级别: 新手上路
UID: 13933
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2010-01-31
最后登录: 2017-09-13
5楼  发表于: 2010-08-24 08:47
使用触摸功能的同时,能进行AD采集吗?
级别: 新手上路
UID: 28461
精华: 0
发帖: 20
金钱: 100 两
威望: 20 点
综合积分: 40 分
注册时间: 2010-09-11
最后登录: 2016-04-30
6楼  发表于: 2010-09-18 23:03
请问斑竹,这样实现的AD采样频率最高可以达到多高?