主题 : micro2440 的AD驱动做得实在是可恶 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 37687
精华: 0
发帖: 6
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2011-02-15
最后登录: 2017-09-13
楼主  发表于: 2011-02-18 15:48

 micro2440 的AD驱动做得实在是可恶

一直没有找到单独的ADC驱动,偶然看到有网友说是和Touch放在一起了,
翻看"s3c2440a_touch.cpp" 一看,真是如此,好吧,也将就了,再详细看
里面的代码,不由得气炸了肺!
请看原文件的代码:
=======================================================
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;
}
=======================================================
产生 "ADC_EVENT_FROM_FRIENDLYARM" 也可以忍受,
但:
             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();
-----------------------------------------------------------------------------------------
很恶心,存心不想让使用者弄自己的程序!
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
贡献值: 27 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2011-02-18 17:10
2440的Adc本来就是共用同一个转换器,驱动在一起很自然。况且驱动是源代码,用户完全可以根据自己的需要更改。
如果你明白掌握了原理,也可以采用其他方式实现驱动和效果,做软件开发不要太拘于形式。
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 新手上路
UID: 37687
精华: 0
发帖: 6
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2011-02-15
最后登录: 2017-09-13
2楼  发表于: 2011-02-21 11:11
“做软件开发不要太拘于形式”,这话没错,
但开发板的作用是让使用者进行快速掌握资源的使用,如果还要使用者进入到低层驱动去明白、理解,
那得花很长的时间了,神马都是浮云了。
级别: 侠客
UID: 18088
精华: 1
发帖: 49
金钱: 1860 两
威望: 372 点
贡献值: 1 点
综合积分: 118 分
注册时间: 2010-04-05
最后登录: 2016-04-13
3楼  发表于: 2011-02-21 14:56
是啊, 太限制用户了,利己主义!
级别: 新手上路
UID: 28823
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2010-09-17
最后登录: 2011-12-20
4楼  发表于: 2011-02-22 10:17
当时我看到这个ad,就放弃了,自己在板子上加了一个外置的。
级别: 新手上路
UID: 57387
精华: 0
发帖: 26
金钱: 140 两
威望: 28 点
贡献值: 0 点
综合积分: 52 分
注册时间: 2011-10-23
最后登录: 2012-04-29
5楼  发表于: 2011-11-26 09:21
/linux-2.6.29/drives/char/mini_adc.c
这个不是adc驱动吗?
刚开始学习开发板