[ZLG-MCU] easyarm615的ADC采样的问题

[复制链接]
 楼主| 耄耄耄 发表于 2008-4-10 23:13 | 显示全部楼层 |阅读模式
我用的是easyarm615底板。编写程序实现如下的功能:使用adc的采样序列0,对0通道的模拟电压进行转换,转换完成后将数据存储,并点亮LED1指示数据存储完毕,然后熄灭,但是上电以后LED1一直亮,不知道原因。我用IAR,程序编好以后我点“debug“就会出现如下提示:could&nbsp;no&nbsp;find&nbsp;the&nbsp;source&nbsp;file:&quot;c:cygwinhomekir&nbsp;chersanboxDriverlibuildDriverlib.PDL-LM3SDriverlib.testsrcadc.c&quot;,would&nbsp;you&nbsp;like&nbsp;to&nbsp;located&nbsp;you&nbsp;self?<br />程序如下:<br />#include&nbsp;&quot;hw_types.h&quot;<br />#include&nbsp;&quot;hw_memmap.h&quot;<br />#include&nbsp;&quot;hw_gpio.h&quot;<br />#include&nbsp;&quot;hw_ints.h&quot;<br />#include&nbsp;&quot;hw_adc.h&quot;<br />#include&nbsp;&quot;sysctl.h&quot;<br />#include&nbsp;&quot;gpio.h&quot;<br />#include&nbsp;&quot;adc.h&quot;<br />#include&nbsp;&quot;debug.h&quot;<br /><br />#define&nbsp;LED1&nbsp;GPIO_PIN_7<br />#define&nbsp;KEY&nbsp;GPIO_PIN_4<br />void&nbsp;Go2Jtag(void)//防止jtag死锁<br />{<br />SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);<br />GPIODirModeSet(GPIO_PORTD_BASE,KEY,GPIO_DIR_MODE_IN);<br />if(GPIOPinRead(GPIO_PORTD_BASE,KEY)==0)<br />{<br />while(1);<br />}<br />}<br />void&nbsp;delay(int&nbsp;iCount)<br />{<br />for(;iCount;iCount--)<br />{<br />};<br />}<br />unsigned&nbsp;long&nbsp;ulData;<br /><br /><br />int&nbsp;main(void)<br />{<br />Go2Jtag();<br />SysCtlClockSet(SYSCTL_SYSDIV_1|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_6MHZ);<br />SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC);<br />SysCtlADCSpeedSet(SYSCTL_ADCSPEED_125KSPS);<br />SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);<br />GPIODirModeSet(GPIO_PORTD_BASE,LED1,GPIO_DIR_MODE_OUT);//配置LED1连接的GPIO口<br />ADCSequenceDisable(ADC_BASE,0);<br />ADCSequenceConfigure(ADC_BASE,0,ADC_TRIGGER_PROCESSOR,0);<br />ADCSequenceStepConfigure(ADC_BASE,0,0,ADC_CTL_CH0|ADC_CTL_END|ADC_CTL_IE);<br />ADCSequenceEnable(ADC_BASE,0);//使能采样序列0<br />while(1)<br />{<br />ADCProcessorTrigger(ADC_BASE,0);//程序触发采样序列<br />while((HWREG(ADC_BASE+ADC_O_X_SSFSTAT)&0x00000100));<br />ADCSequenceDataGet(ADC_BASE,0,&ulData);<br />ulData=(ulData*1000*3)/1024;<br />GPIOPinWrite(GPIO_PORTD_BASE,LED1,~LED1);//如果采样完成,则LED1亮<br />delay(200000);//延长一段时间<br />GPIOPinWrite(GPIO_PORTD_BASE,LED1,LED1);//熄灭LED1<br />}<br />}<br /><br />&nbsp;<br /><br />&nbsp;<br />
zlgmcu 发表于 2008-4-11 14:01 | 显示全部楼层

这是驱动库安装问题,建议重新安装

请看这一贴: <br /> 相关链接:<a href='https://bbs.21ic.com/club/bbs/bbsView.asp'>https://bbs.21ic.com/club/bbs/bbsView.asp</a>
 楼主| 耄耄耄 发表于 2008-4-11 15:03 | 显示全部楼层

还是不行。。。。

为什么重装过后仍然不行啊?我的E_mail是gray_1024@163.com,请您也发给我好吗?
 楼主| 耄耄耄 发表于 2008-4-11 15:05 | 显示全部楼层

程序

为什么LED1常亮?请您指教。
liujigan 发表于 2008-4-11 15:43 | 显示全部楼层

re

(1)用GPIOPadConfigSet()函数设置一下驱动电流<br />(2)ADCSequenceStepConfigure(ADC_BASE,0,0,ADC_CTL_CH0|ADC_CTL_END|ADC_CTL_IE);<br />中的ADC_CTL_IE没有用,去掉。
 楼主| 耄耄耄 发表于 2008-4-11 16:31 | 显示全部楼层

......

谢谢您的帮助!可是我按照您所说的作了相应修改,LED1依然常亮,无论驱动电流设置为何值都是如此。。。。。
liujigan 发表于 2008-4-11 16:40 | 显示全部楼层

复位了吗?

要复位一下,如灯有跳线要记住短接。
 楼主| 耄耄耄 发表于 2008-4-15 15:12 | 显示全部楼层

硬件复位

EasyARM615的硬件复位怎么弄啊?我昨天看了原理图,它的RST脚是直接接在高电平上的,我试着用SysCtlReset()复位所有器件,可是等了好长时间也没反应,接下来的源代码好像没有执行。我是菜鸟,基础薄弱,请您多教教我好吗?
 楼主| 耄耄耄 发表于 2008-4-15 15:24 | 显示全部楼层

参考电压

EasyARM615上ADC的参考电压是多少啊?我不想用它自带的温度传感器却不知道放大器的放大倍数应选多少。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

30

帖子

0

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