[ZLG-ARM] ad转换问题??

[复制链接]
 楼主| jhycl 发表于 2007-2-28 15:09 | 显示全部楼层 |阅读模式
ad输入为通道0,电源接p0.27&nbsp;地和电源地连接,程序启动后无法进入ad中断,不知什么原因?(监测ADDR一直为0)<br /><br />初始化及中断函数如下:<br /><br />void&nbsp;&nbsp;Adc_Init(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;adc_data;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL1&nbsp;=&nbsp;PINSEL1&nbsp;|&nbsp;0x01400000;<br />&nbsp;&nbsp;&nbsp;&nbsp;ADCR&nbsp;=&nbsp;(1&nbsp;&lt&lt&nbsp;0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((Fpclk&nbsp;/&nbsp;1000000&nbsp;-&nbsp;1)&nbsp;&lt&lt&nbsp;8)&nbsp;|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&nbsp;&lt&lt&nbsp;16)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;//0&nbsp;软件控制&nbsp;如设成1可进中断&nbsp;但其他任务不能运行<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&nbsp;&lt&lt&nbsp;17)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&nbsp;&lt&lt&nbsp;21)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&nbsp;&lt&lt&nbsp;22)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&nbsp;&lt&lt&nbsp;24)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&nbsp;&lt&lt&nbsp;27);<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntSelect&nbsp;=&nbsp;0x00000000;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectCntl6&nbsp;=&nbsp;0x32;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr6&nbsp;=&nbsp;(int)IRQ_ADC0;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;=&nbsp;VICIntEnable&nbsp;|&nbsp;0x00040000;&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;DelayMS(10);<br />//&nbsp;&nbsp;&nbsp;&nbsp;ADdata&nbsp;=&nbsp;ADDR;<br /><br /><br /><br />void&nbsp;__irq&nbsp;IRQ_ADC0(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;bat;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;addata[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;bat&nbsp;=&nbsp;VICIntEnable;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ADdata&nbsp;=&nbsp;ADDR;<br />&nbsp;&nbsp;&nbsp;&nbsp;addata[0]=(uint8)(ADdata&gt&gt6);<br />&nbsp;&nbsp;&nbsp;&nbsp;addata[1]=(uint8)(ADdata&gt&gt14);<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;=&nbsp;bat;<br />}<br />
 楼主| jhycl 发表于 2007-3-1 08:45 | 显示全部楼层

自己顶

  
zlgARM 发表于 2007-3-1 11:04 | 显示全部楼层

RE

用例程跑一下,看看能否进中断。
 楼主| jhycl 发表于 2007-3-1 13:14 | 显示全部楼层

例程是查询方式的

我用查询方式500ms读一次ad数据,数据不稳,加2.5v时&nbsp;数值从0.6到2.5范围内不停变化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

124

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部