部分程序如下:
pADCreg->rADCCON = (1<<14)|(200<<6)|(0<<3);
adccon = pADCreg->rADCCON;
pADCreg->rADCCON |= 1;
DWORD cmp = pADCreg->rADCCON&1;
while(cmp);//这里,如果我单步调试,一步一步走到这儿,cmp就是0,说明已经转换了,但是如是我直接走到这儿,它就是1.不知道为什么.
cmp = pADCreg->rADCCON & 0x8000;
while(!cmp);//这儿也是同样的问题.
adcdat = pADCreg->rADCDAT0&0x3ff;
请大家都我看下.谢谢了.
------解决方案--------------------
直接走到那个地方,还没有来得及转换完毕。单步花的时间长。
可以给cmp加volatile关键字再编译。