A/D converter 問題
|
||||
---|---|---|---|---|
新會員
|
我是使用dsPICDWM 1.1 Development Board
當我要從AN0(RB0) 及Gnd輸入sin wave作A/D converter 但用以下程式卻無法執行 可是當使用RB6當輸入(即從內建的AVDD分壓所得到的值) 即可順利的執行A/D converter 不知是哪些地方沒注意到 #define __dsPIC30F6014__ #include <adc12.h> #include <p30F6014.h> //--------------------------------------------------------------------- // Configuration bits _FOSC(CSW_FSCM_OFF & XT_PLL4); //XT with 4xPLL oscillator, Failsafe clock off _FWDT(WDT_OFF); //Watchdog timer disabled _FBORPOR(PBOR_OFF & MCLR_EN); //Brown-out reset disabled, MCLR reset enabled _FGS(CODE_PROT_OFF); //Code protect disabled //--------------------------------------------------------------------- #define Fcy 7370000 unsigned int i; int ADCValue[80]; void IO_Init(void) { PORTB=0xFFFF; PORTD=0xFFFF; TRISB=0xFFFF; //all pins is input TRISD=0xFFF0; //LED1~LED4 is output TRISA=0xFFFF; //sw1~sw4 is input LATD=0x000F; //all LED turn off } //--------------------------------------------------------------------------- void ADC_Init(void) { ADPCFG=0xFFFE; //RB0 is analong mode, others is digital mode ADCON1=0x01E4; ADCON2=0x0400; ADCON3=0x1D3F; //sample time=125us //Tad=32Tcy ADCSSL=0x0001; //AN0 is input scan ADCON1bits.ADON=1; //turn ADC on } //---------------------------------------------------------------- int main(void) { IO_Init(); ADC_Init(); for (i=0;i<=80;i++) { while(!IFS0bits.ADIF); IFS0bits.ADIF=0; ADCValue[i]=ADCBUF0; } }
發表於: 2005/2/23 21:24
|
|||
|