本人最近在用UBW32開發板,里面是PIC32MX795。 我自己寫了一個測試AD模塊的程序。大體思想就是想通過函數發生器所發出的方波來控制LED的閃爍。從而實現測試AD轉換是否運行正常,大體就是給1就亮,給0就不亮。然而我在運行程序時LED卻一直亮。沒有出現隨著方波頻率變化的情況。我用的是2.2HZ接近3.3V的方波。總之我的程序如下。本人菜鳥一枚,各位大神如有懂得請幫我指一條明路!跪謝!!/*
** ADCLib.c
**
*/
// configuration bit settings, Fcy=72MHz, Fpb=36MHz
#pragma config POSCMOD=XT, FNOSC=PRIPLL
#pragma config FPLLIDIV=DIV_2, FPLLMUL=MUL_18, FPLLODIV=DIV_1
#pragma config FPBDIV=DIV_2, FWDTEN=OFF, CP=OFF, BWP=OFF
#include <p32xxxx.h>
#define POT 5 // 10k potentiometer on AN5 input
#define AINPUTS 0xffdf // Analog inputs for POT
// initilaize the ADC for single conversion, select input pins
void initADC( int amask)
{
AD1PCFG = amask; // select analog input pins
AD1CON1 = 0x00E0; // auto convert after end of sampling
AD1CSSL = 0; // no scanning required
AD1CON2 = 0; // use MUXA, AVss/AVdd used as Vref+/-
AD1CON3 = 0x1F3F; // max sample thime = 31Tad
AD1CON1SET = 0x8000; // turn on the ADC
} //initADC
int readADC( int ch)
{
AD1CHSbits.CH0SA = ch; // select analog input channel
AD1CON1bits.SAMP = 1; // start sampling
while (!AD1CON1bits.DONE); // wait to complete conversion
return ADC1BUF0; // read the conversion result
} // readADC
main()
{
DDPCONbits.JTAGEN=0;
TRISB=0x0020;
initADC( AINPUTS);
int a;
a=readADC( POT);
TRISE=0x0000; //PORTE pins are output,and connected to
while( 1)
{
PORTE=a;
}
}
|