ADC驱动初始化s2440ADC->rADCCON导致崩溃

yuewei167   2010-1-23 11:18 楼主
我在写一个2440 ADC的驱动程序,程序已经被windows启动起来了,但是只要一执行到以下初始化红色的地方,程序就在串口输出崩溃信息。我的问题是,是不是触摸屏也在使用这个ADC。而2个驱动程序不能互相竞争这个寄存器?
我感觉不应该这样的,我在初始化之前备份了s2440ADC->rADCCON,ADC操作结束后我会恢复现场的。但是他还是崩溃了,郁闷

        int t;
        t=0;
        t=PRSCEN_EN|PRSCVL(49)|ADC_CH(0)|STDBM;|
        printf("----------t=%x\r\n",t);
        s2440ADC->rADCCON=t;
        printf("----------end of init ADC \r\n");

回复评论 (8)

崩溃信息是这样的:
s2440ADCP: VirtualAlloc beging!
s2440ADCP: VirtualAlloc end!
----------t=4c40
----------K=4c40
Undefined Instruction: Thread=8fea5a3c Proc=8e026160 ''
AKY=0000Fatal Stack Error, Terminating thread 8fdd5400, pexi = 0632fe24
Exception 'Prefetch Abort' Thread=8fdd5400 AKY=00000005 PC=00000000 BVA=06000000

R0=00000000  R1=8fdd5400  R2=6000001f  R3=00001000
R4=00000000  R5=01e55060  R6=00005500  R7=00000000
R8=00000000  R9=00000000 R10=00000000 R11=00000000
R12=8c236514  SP=0632fe70  Lr=00000000 Psr=4000001f
点赞  2010-1-23 11:25
楼主首先确认下你的触摸屏采用的ADC和你现在采用的ADC 是同一个IC中的ADC吗?

我们的采用是位于同一IC,他们之间的数据寄存器是共享,但是通过控制对应的寄存器,从而来切换通道。

楼主在进行相关处理是否有进行相关通道切换的配置?
点赞  2010-1-23 12:39
从上边的程序没看到----------K=4c40
这句话是哪打印的?
点赞  2010-1-23 14:35
用了ADC中断吗?否则怎么会有这句?看看是不是其它地方影响的
点赞  2010-1-23 14:36
"我在初始化之前备份了s2440ADC->rADCCON,ADC操作结束后我会恢复现场的。"
好像是这个地方你没有做对。
点赞  2010-1-24 09:35
支持,关注
点赞  2010-1-24 12:13
s2440ADCP: VirtualAlloc beging!
s2440ADCP: VirtualAlloc end!
----------t=4c40
----------K=4c40
这几行是我自己打印的
测试用 的
点赞  2010-1-25 08:47
你怎么确定是在这一句死机的??
----------K=4c40
是其他地方打印的?
如果是其他函数打印的话,那么说明程序已经跳到其他地方了??
点赞  2010-1-25 11:43
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复