3255|6

76

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

wince 嵌入式开发 [复制链接]

开发板:三星2440 环境:wince
现在任务:采集ad数值
遇到问题:可以取到正确ad数值,但是当触摸屏被按住的时候,采集到的数值为触摸屏的x坐标值?
代码如下:
int CShowDlg::ReadAdc(int ch)
{
    int i;
    static int prevCh=-1;
    v_pADCRegs->rADCCON = (1<<14)|(preScaler<<6)|(ch<<3); //setup channel
    if(prevCh!=ch)
    {
v_pADCRegs->rADCCON = (1<<14)|(preScaler<<6)|(ch<<3);   //setup channel
for(i=0;i prevCh=ch;
    }
    v_pADCRegs->rADCCON|=0x1;   //start ADC

    while(v_pADCRegs->rADCCON & 0x1); //check if Enable_start is low
    while(!(v_pADCRegs->rADCCON & 0x8000)); //check if EC(End of Conversion) flag is high

return ((int)v_pADCRegs->rADCDAT0 & 0x3ff);

}

void CShowDlg::Test_Adc(void)
{
int a0=0; //Initialize variables
    UINT32 rADCCON_save = v_pADCRegs->rADCCON;
    CString str;

    preScaler = ADC_FREQ;
    preScaler = 50000000/ADC_FREQ -1;               //PCLK:50.7MHz
a0=ReadAdc(0);
v_pADCRegs->rADCCON = rADCCON_save;

str.Format(L"%d", a0);
SetDlgItemTextW(IDC_EDIT1,str);
m_CurPressureShow.SetPos(a0);
}

现有现象以及分析:
当按住触摸屏时,调试发现v_pADCRegs->rADCCON的值并没有被置为选择X-pos,还是自定通道。
是因为操作系统的中断优先级太高的原因吗?

附:
地址映射方法如下
v_pIOPRegs = (volatile IOPreg*)VirtualAlloc(0, sizeof(IOPreg), MEM_RESERVE, PAGE_NOACCESS);
if (v_pIOPRegs == NULL)
{
   DEBUGMSG (1,(TEXT("v_pIOPRegs is not allocated\n\r")));
   //return TRUE;
}
if (!VirtualCopy((PVOID)v_pIOPRegs, (PVOID)IOP_BASE, sizeof(IOPreg), PAGE_READWRITE|PAGE_NOCACHE)) {
   DEBUGMSG (1,(TEXT("v_pIOPRegs is not mapped\n\r")));
   //return TRUE;
}
此帖出自WindowsCE论坛

最新回复

也谢谢关注的人,呵呵  详情 回复 发表于 2009-6-12 14:23
点赞 关注
 

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
mark
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
MARK
此帖出自WindowsCE论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
地址映射没问题

可能还是相关寄存器的设置问题。因为AD跟LCD复用 ,看看相关的寄存器 ADCTSC SUBSRCPND

此帖出自WindowsCE论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

5
 
        v_pINTregs->rSUBSRCPND |= (1<<10);//屏蔽触摸屏中断
        v_pADCRegs->rADCTSC&=~3;
                a0=ReadAdc(0);
        v_pADCRegs->rADCTSC|=3;
        v_pINTregs->rSUBSRCPND &= ~(1<<10);//开启触摸屏中断

我这样设置了也不起作用啊
此帖出自WindowsCE论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
终于可以了,v_pADCRegs->rADCTSC&0x100可以判断,谢谢jgj58
此帖出自WindowsCE论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

7
 
也谢谢关注的人,呵呵
此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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