我用的是easyarm615底板。编写程序实现如下的功能:使用adc的采样序列0,对0通道的模拟电压进行转换,转换完成后将数据存储,并点亮LED1指示数据存储完毕,然后熄灭,但是上电以后LED1一直亮,不知道原因。我用IAR,程序编好以后我点“debug“就会出现如下提示:could no find the source file:"c:cygwinhomekir chersanboxDriverlibuildDriverlib.PDL-LM3SDriverlib.testsrcadc.c",would you like to located you self?<br />程序如下:<br />#include "hw_types.h"<br />#include "hw_memmap.h"<br />#include "hw_gpio.h"<br />#include "hw_ints.h"<br />#include "hw_adc.h"<br />#include "sysctl.h"<br />#include "gpio.h"<br />#include "adc.h"<br />#include "debug.h"<br /><br />#define LED1 GPIO_PIN_7<br />#define KEY GPIO_PIN_4<br />void 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 delay(int iCount)<br />{<br />for(;iCount;iCount--)<br />{<br />};<br />}<br />unsigned long ulData;<br /><br /><br />int 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 /> <br /><br /> <br /> |
|