wince 嵌入式开发

yushionly 2009-06-08 02:57:38
开发板:三星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<LOOP;i++); //delay to set up the next channel
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;
}
...全文
33 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yushionly 2009-06-12
  • 打赏
  • 举报
回复
也谢谢关注的人,呵呵
yushionly 2009-06-12
  • 打赏
  • 举报
回复
终于可以了,v_pADCRegs->rADCTSC&0x100可以判断,谢谢jgj58
yushionly 2009-06-12
  • 打赏
  • 举报
回复
v_pINTregs->rSUBSRCPND |= (1<<10);//屏蔽触摸屏中断
v_pADCRegs->rADCTSC&=~3;
a0=ReadAdc(0);
v_pADCRegs->rADCTSC|=3;
v_pINTregs->rSUBSRCPND &= ~(1<<10);//开启触摸屏中断

我这样设置了也不起作用啊
jgj58 2009-06-10
  • 打赏
  • 举报
回复
地址映射没问题

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

zhangxuyu1118 2009-06-10
  • 打赏
  • 举报
回复
MARK
xqhrs232 2009-06-08
  • 打赏
  • 举报
回复
mark

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧