用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;
} }
此帖出自
小平头技术问答
一周热门 更多>