4286|14

90

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

touch panel驱动 奇怪问题! [复制链接]

本人把wince6.0下的DeviceEmulator改到我的2440的开发板上运行,因为DeviceEmulator是基于2410的,现在改到2440下改动也不是太大, 目前wince6.0的桌面已经可以显示出来了,但是触摸屏却一直动不了,后来跟踪发现触摸屏驱动已经加载,而且第一次点击触摸屏还可以产生中断,但是与该中断关联的事件却触发不了,导致IST线程一直在“WaitForSingleObject( hTouchPanelEvent, gdwTouchIstTimeout );”这个位置等待,查了很久,InterruptInitialize也成功了,但为何hTouchPanelEvent事件就是触发不了呢??不知有谁碰到过这样的问题,请指教!   

本人在触摸屏驱动的几个关键函数中都加了串口调试信息,如TouchPanelEnable函数中的串口信息都可以显示,但是TouchPanelpISR中的信息却打印不出来,这说明没有执行到,如下。另外本人在OEMInterruptHandler函数中也加了串口打印的动作,以跟踪哪个中断发生,当触摸屏第一次点击时是有信息打印输出的,这说明触摸屏中断可以产生。

    while  ( !bTerminate )
    {
        WaitForSingleObject( hTouchPanelEvent, gdwTouchIstTimeout );
        RETAILMSG(1, (TEXT("TouchPanelpISR\r\n")));



最新回复

1.请注意你的ADC的VDD和clock是否有给。 2.用手按触摸屏的时候,用示波器量一下信号,看是否有触发?  详情 回复 发表于 2009-10-10 17:41
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
是不是第一次中断后,没有释放中断(InterruptDone函数没有调用)
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
中断没有释放,或者定时器中断没有打开
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

4
 
追查Interuptdone(貌似是这个名字)函数,看是否重新使能中断
你现在一次中断都没有产生吗?
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢各位,Interuptdone函数是没有调用,但是触摸屏执行的路径应该是:中断->TouchPanelpISR->WaitForSingleObject->DdsiTouchPanelGetPoint->Interuptdone,但关键是WaitForSingleObject()函数都过不了怎么能执行Interuptdone呢!
以下是触摸屏IST线程TouchPanelpISR的代码,见中文注释部分。


static ULONG
TouchPanelpISR(
    PVOID   Reserved  //@parm Reserved, not used.
    )
{
    TOUCH_PANEL_SAMPLE_FLAGS    SampleFlags = 0;
    INT32                       RawX, CalX;
    INT32                       RawY, CalY;
    UINT32                      MaxX =  DisplayWidth * X_SCALE_FACTOR;
    UINT32                      MaxY =  DisplayHeight * Y_SCALE_FACTOR;
    UINT32                      CurrentDown = 0;
    static LONG CX;
    static LONG CY;
    static LONG XBase;
    static LONG YBase;
    static int  CalibrationSampleCount;
    static BOOL     fSetBase;
    static DWORD    BaseTime;
    static BOOL     fGotSample;

    PFN_TOUCH_PANEL_CALLBACK pfnCallback;

    // Need to be all kmode so that we can write to shared memory.
    //
    RETAILMSG(1, (TEXT("TouchPanelpISR\n")));
    while  ( !bTerminate )
    {
        WaitForSingleObject( hTouchPanelEvent, gdwTouchIstTimeout );//死在这里
         RETAILMSG(1, (TEXT("TouchPanelpISR\r\n")));//串口没有打印这句话,说明没有执行到这
        EnterCriticalSection( &csMutex );
        DEBUGMSG(ZONE_THREAD, (TEXT("TCH_INTR\r\n")) );

        // Give the pdd the down state of the previous sample
        if ( CurrentDown )
            SampleFlags |= TouchSamplePreviousDownFlag;
        else
            SampleFlags &= ~TouchSamplePreviousDownFlag;

        DdsiTouchPanelGetPoint( &SampleFlags, &RawX, &RawY );//这个函数里面才会调用Interuptdone函数。
        if ( SampleFlags & TouchSampleIgnore )
        {
            // do nothing, not a valid sample
            LeaveCriticalSection( &csMutex );
            continue;
        }
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
gooogleman:“追查Interuptdone(貌似是这个名字)函数,看是否重新使能中断
你现在一次中断都没有产生吗?”

to gooogleman:
能产生第一次中断,但是IST线程一直在WaitForSingleObject的位置没往下执行,所以也不可能有第二次中断,但为何中断发生了,IST线程却不能被唤醒呢??
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

7
 
闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏闁诲孩鑹鹃ˇ浼村Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戝妽妞ゃ劌妫濋弫鍐閻樺灚娈惧┑掳鍊曢幊搴㈠劔闂備礁鐤囧銊х矆娴h鍙忛柕鍫濐槹閻撶喖鏌e鈧禍璺侯瀶閻戣姤鐓曢柡鍌濇硶缁犵粯銇勯姀锛勬噰妤犵偛顑夐弫鍌炴嚍閵夛妇褰ㄩ梺璇查閸樻粓宕戦幘缁樼厱闁归偊鍘奸崝銈嗙箾閸剚瀚�闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊烽懗鍫曞箠閹剧粯鍋ら柕濞炬櫆閸嬪鏌i幇顒佹儓闁绘帒鐏氶妵鍕箳閹搭垱鏁鹃柣搴㈢啲閹凤拷婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 
闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏闁诲孩鑹鹃ˇ浼村Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戝妽妞ゃ劌妫濋弫鍐閻樺灚娈惧┑掳鍊曢幊搴㈠劔闂備礁鐤囧銊х矆娴h鍙忛柕鍫濐槹閻撶喖鏌e鈧禍璺侯瀶閻戣姤鐓曢柡鍌濇硶缁犵粯銇勯姀锛勬噰妤犵偛顑夐弫鍌炴嚍閵夛妇褰ㄩ梺璇查閸樻粓宕戦幘缁樼厱闁归偊鍘奸崝銈嗙箾閸剚瀚�闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊烽懗鍫曞箠閹剧粯鍋ら柕濞炬櫆閸嬪鏌i幇顒佹儓闁绘帒鐏氶妵鍕箳閹搭垱鏁鹃柣搴㈢啲閹凤拷婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏闁诲孩鑹鹃ˇ浼村Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戝妽妞ゃ劌妫濋弫鍐閻樺灚娈惧┑掳鍊曢幊搴㈠劔闂備礁鐤囧銊х矆娴h鍙忛柕鍫濐槹閻撶喖鏌e鈧禍璺侯瀶閻戣姤鐓曢柡鍌濇硶缁犵粯銇勯姀锛勬噰妤犵偛顑夐弫鍌炴嚍閵夛妇褰ㄩ梺璇查閸樻粓宕戦幘缁樼厱闁归偊鍘奸崝銈嗙箾閸剚瀚�闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊烽懗鍫曞箠閹剧粯鍋ら柕濞炬櫆閸嬪鏌i幇顒佹儓闁绘帒鐏氶妵鍕箳閹搭垱鏁鹃柣搴㈢啲閹凤拷婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(高级)

10
 
闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏闁诲孩鑹鹃ˇ浼村Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戝妽妞ゃ劌妫濋弫鍐閻樺灚娈惧┑掳鍊曢幊搴㈠劔闂備礁鐤囧銊х矆娴h鍙忛柕鍫濐槹閻撶喖鏌e鈧禍璺侯瀶閻戣姤鐓曢柡鍌濇硶缁犵粯銇勯姀锛勬噰妤犵偛顑夐弫鍌炴嚍閵夛妇褰ㄩ梺璇查閸樻粓宕戦幘缁樼厱闁归偊鍘奸崝銈嗙箾閸剚瀚�闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊烽懗鍫曞箠閹剧粯鍋ら柕濞炬櫆閸嬪鏌i幇顒佹儓闁绘帒鐏氶妵鍕箳閹搭垱鏁鹃柣搴㈢啲閹凤拷婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

11
 
闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏闁诲孩鑹鹃ˇ浼村Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戝妽妞ゃ劌妫濋弫鍐閻樺灚娈惧┑掳鍊曢幊搴㈠劔闂備礁鐤囧銊х矆娴h鍙忛柕鍫濐槹閻撶喖鏌e鈧禍璺侯瀶閻戣姤鐓曢柡鍌濇硶缁犵粯銇勯姀锛勬噰妤犵偛顑夐弫鍌炴嚍閵夛妇褰ㄩ梺璇查閸樻粓宕戦幘缁樼厱闁归偊鍘奸崝銈嗙箾閸剚瀚�闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊烽懗鍫曞箠閹剧粯鍋ら柕濞炬櫆閸嬪鏌i幇顒佹儓闁绘帒鐏氶妵鍕箳閹搭垱鏁鹃柣搴㈢啲閹凤拷婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

12
 
闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏闁诲孩鑹鹃ˇ浼村Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戝妽妞ゃ劌妫濋弫鍐閻樺灚娈惧┑掳鍊曢幊搴㈠劔闂備礁鐤囧銊х矆娴h鍙忛柕鍫濐槹閻撶喖鏌e鈧禍璺侯瀶閻戣姤鐓曢柡鍌濇硶缁犵粯銇勯姀锛勬噰妤犵偛顑夐弫鍌炴嚍閵夛妇褰ㄩ梺璇查閸樻粓宕戦幘缁樼厱闁归偊鍘奸崝銈嗙箾閸剚瀚�闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊烽懗鍫曞箠閹剧粯鍋ら柕濞炬櫆閸嬪鏌i幇顒佹儓闁绘帒鐏氶妵鍕箳閹搭垱鏁鹃柣搴㈢啲閹凤拷婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

13
 
闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏闁诲孩鑹鹃ˇ浼村Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戝妽妞ゃ劌妫濋弫鍐閻樺灚娈惧┑掳鍊曢幊搴㈠劔闂備礁鐤囧銊х矆娴h鍙忛柕鍫濐槹閻撶喖鏌e鈧禍璺侯瀶閻戣姤鐓曢柡鍌濇硶缁犵粯銇勯姀锛勬噰妤犵偛顑夐弫鍌炴嚍閵夛妇褰ㄩ梺璇查閸樻粓宕戦幘缁樼厱闁归偊鍘奸崝銈嗙箾閸剚瀚�闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊烽懗鍫曞箠閹剧粯鍋ら柕濞炬櫆閸嬪鏌i幇顒佹儓闁绘帒鐏氶妵鍕箳閹搭垱鏁鹃柣搴㈢啲閹凤拷婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

14
 
闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏闁诲孩鑹鹃ˇ浼村Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戝妽妞ゃ劌妫濋弫鍐閻樺灚娈惧┑掳鍊曢幊搴㈠劔闂備礁鐤囧銊х矆娴h鍙忛柕鍫濐槹閻撶喖鏌e鈧禍璺侯瀶閻戣姤鐓曢柡鍌濇硶缁犵粯銇勯姀锛勬噰妤犵偛顑夐弫鍌炴嚍閵夛妇褰ㄩ梺璇查閸樻粓宕戦幘缁樼厱闁归偊鍘奸崝銈嗙箾閸剚瀚�闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊烽懗鍫曞箠閹剧粯鍋ら柕濞炬櫆閸嬪鏌i幇顒佹儓闁绘帒鐏氶妵鍕箳閹搭垱鏁鹃柣搴㈢啲閹凤拷婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

15
 
闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏闁诲孩鑹鹃ˇ浼村Φ閸曨垰绠抽柛鈩冦仦婢规洜绱撻崒娆戝妽妞ゃ劌妫濋弫鍐閻樺灚娈惧┑掳鍊曢幊搴㈠劔闂備礁鐤囧銊х矆娴h鍙忛柕鍫濐槹閻撶喖鏌e鈧禍璺侯瀶閻戣姤鐓曢柡鍌濇硶缁犵粯銇勯姀锛勬噰妤犵偛顑夐弫鍌炴嚍閵夛妇褰ㄩ梺璇查閸樻粓宕戦幘缁樼厱闁归偊鍘奸崝銈嗙箾閸剚瀚�闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊烽懗鍫曞箠閹剧粯鍋ら柕濞炬櫆閸嬪鏌i幇顒佹儓闁绘帒鐏氶妵鍕箳閹搭垱鏁鹃柣搴㈢啲閹凤拷婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播 | AI之眼——安森美图像传感器 报名中
直播时间:2025年4月25日(周五)上午10:00-11:30
直播主题:AI之眼——安森美图像传感器
报名观看直播、直播间提问、填写问卷均有机会获得精美礼品!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 14

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表