4461|6

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince触摸屏驱动和电池驱动冲突的问题 [复制链接]

下面是我做的更改,各位看看那儿出问题了,帮忙分析一下,谢谢先
触摸屏修改
1,在s3c2440a_touch.cpp里定义HANDLE hMutex;
2,在DdsiTouchPanelEnable里hMutex=CreateMutex(NULL,FALSE,TEXT("AClinkOfMutexObject"));
3,TSP_GetXY(INT *px, INT *py)   //修改
{
    INT i;
    INT xsum, ysum;
    INT x, y;
    INT dx, dy;

    xsum = ysum = 0;

    for (i = 0; i < TSP_SAMPLE_NUM; i++)
    {
        if(hMutex )
    {
        //RETAILMSG(1, (TEXT("Before ADC sample\r\n")));
        WaitForSingleObject(hMutex, 5000);
        //RETAILMSG(1, (TEXT("after ADC sample\r\n")));
    }
    //LockBattery();
        v_pADCregs->ADCTSC = (0<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(1<<3)|(1<<2)|(0);            
        v_pADCregs->ADCCON |= (1 << 0);                /* Start Auto conversion                */

        while (v_pADCregs->ADCCON & 0x1);                /* check if Enable_start is low            */
        while (!(v_pADCregs->ADCCON & (1 << 15)));        /* Check ECFLG                            */

        x = (0x3ff & v_pADCregs->ADCDAT1);
        y = 0x3ff - (0x3ff & v_pADCregs->ADCDAT0);
        xsum += x;
        ysum += y;
        
        //UnlockBattery();
        
        if(hMutex )
    {
     ReleaseMutex(hMutex);
    }

    }

    *px = xsum / TSP_SAMPLE_NUM;
    *py = ysum / TSP_SAMPLE_NUM;

    v_pADCregs->ADCTSC = (1<<8)|(1<<7)|(1<<6)|(0<<5)|(1<< 4)|(0<<3)|(0<<2)|(3);               
    dx = (*px > x) ? (*px - x) : (x - *px);
    dy = (*py > y) ? (*py - y) : (y - *py);

    return ((dx > TSP_INVALIDLIMIT || dy > TSP_INVALIDLIMIT) ? FALSE : TRUE);
}


目前情况是触摸屏不能用了,而且调试口总是输出
Data Abort: Thread=83c69000 Proc=82126340 'device.exe'
AKY=00000005 PC=02ca137c(battdrvr.dll+0x0000137c) RA=02ca1370(battdrvr.dll+0x000
01370) BVA=06000002 FSR=00000003

各位看看什么原因  帮忙分析一下

最新回复

这个就需要修改电池的驱动了,可以看看这里 [url=http://www.cnblogs.com/we-hjb/archive/2010/01/18/1650995.html][/url]  详情 回复 发表于 2010-2-9 10:41
点赞 关注

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
能不能说详细一些.
Mark.
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
不需要这个吧:
if(hMutex )
    {
    ReleaseMutex(hMutex);
    }

你这是触摸屏驱动,没有跟电池驱动有关的东西啊,可能你把ADC用混了吧。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 2 楼 rushonin 的回复:
不需要这个吧:
if(hMutex )
? ? {
? ? ReleaseMutex(hMutex);
? ? }

你这是触摸屏驱动,没有跟电池驱动有关的东西啊,可能你把ADC用混了吧。
有关系吧,不都需要AD采样吗?我的是锂电池,需要采样AD值
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

5
 
触摸屏用不了, 应该你的ADC通道设置错了,触摸屏的处理代码没有把ADC切换到触摸屏对应的通道;

楼主也可以先把锂电池电量检测ADC这部分代码 屏蔽了,测试下 看看触摸屏是否正常

感觉很可能 系统把ADC设置为锂电池电量检测这个通道,后来没有切换回去到触摸品
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
哦问题解决了,是忘了动态映射了,现在好了,请教下如何把电池状态加入到桌面状态栏?并动态更新?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
查看本帖全部讨论,请登录或者注册
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
报名最后一周!2025 英飞凌消费、计算与通讯创新大会-北京站
会议时间:3月18日(周二)09:30签到
参会奖励:电动螺丝刀套装、户外登山包、京东卡

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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

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

北京市海淀区中关村大街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
快速回复 返回顶部 返回列表