用PIC24HJ128GP510芯片AD转换,在采集之后转换不了,DONE不能被置1
#include<p24HJ128GP510.h>
volatile static unsigned int LedNumVal=1059 ; void lcddelay(unsigned char ms) //(3j+11)*i个指令周期 { unsigned char i,j; // for(i=ms;i>0;i--) for(j=996;j>0;j--) {;} }
void initacd(void) { AD1PCFGL=0XfffF; AD1PCFGH=0XFFFF; AD1PCFGLbits.PCFG3=0; //AN3 TRISBbits.TRISB3=1; AD1CON1=0X0000; //SHOU=1采样 SAMP=0开始转换 AD1CON2=0X0000; //Vadd Vss 1个采样产生一个中断 AD1CON3=0X0009; //9*Tcy=3*1/3us ;Fosc=6M;32*Tad AD1CHS0=0X0003; //AN3 AD1CSSL=0; AD1CON1bits.ADON=1; //开启AD模块 }
main(void) { while(1) //进入循环状态 { initacd(); lcddelay(10); AD1CON1bits.SAMP = 1; lcddelay(10); AD1CON1bits.SAMP = 0; while(!AD1CON1bits.DONE); LedNumVal = ADC1BUF0; } }
|