打印
[开发工具]

MPLAB X IDE v2.05 +CX8 Pro PIC12F1501的AD问题

[复制链接]
3721|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eleczj|  楼主 | 2014-4-11 00:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
RT:
长话短说,PIC新手,高手请轻拍。
代码如下,运行的时候发现AD没有数据出来,也就是AD值一直是0,请帮忙分析下!多谢!
#include <xc.h> // include standard header file
// set Config bits
#pragma config CP = OFF, FOSC = INTOSC     // Code Protection bit (Code protection off).
#pragma config MCLRE = OFF                          
#pragma config WDTE = OFF                           //Watch dog timer off
// Definitions
#define _XTAL_FREQ  4000000       //this is used by the __delay_ms(xx) and __delay_us(xx) functions
//**********************************************************************************
void init( )
{
    // PORT A Assignments
    TRISAbits.TRISA0 = 1;                                        //RA0 = Analog Voltage In
    TRISAbits.TRISA1 = 1;                                        //RA1 = input
    IOCANbits.IOCAN1 = 1;                                        //RA1 NEGATIVE EDGE REGISTER IOC
    TRISAbits.TRISA2 = 0;                                        //RA2 = output
    TRISAbits.TRISA3 = 0;                                        //RA3 = nc (MCLR)
    TRISAbits.TRISA4 = 0;                                        //RA4 = output
    TRISAbits.TRISA5 = 0;                                        //RA5 = output
    // set up oscillator control register.
    OSCCONbits.IRCF = 0x0D;             //set OSCCON IRCF bits 1101 frequency=4Mhz
    OSCCONbits.SCS = 0x02;              //set the SCS bits internal oscillator block
    // set up INTCON register.
    INTCONbits.IOCIE = 1;                      //set INTCON IOCIE bits Enabled
    // set up FVRCON register.
    //FVRCONbits.FVREN = 1;       //Fixed Voltage Reference Enabled 1.024V
    //FVRCONbits.ADFVR = 0x02;    //ADC FVR Buffer Gain is 2x, 2 x VFVR = 2.048V
    // set up ADC control register.
    ANSELAbits.ANSA0 = 1;                                        //Select A0 as analog input pin
    ADCON0bits.CHS = 0x00;              //Set ADC conversion Channel AN0.
    ADCON0bits.ADON = 1;                                        //ADC is on
    ADCON1bits.ADCS = 0x04;             //Set ADC clock FRC x111. 0x04 = Fosc/4
    ADCON1bits.ADFM = 0x01;             //Set Data Right justified.
    ADCON1bits.ADPREF = 0x00;           //Set Vref connected to VDD.

}
//**********************************************************************************
unsigned int Read_ADC_Value(void)
{
    unsigned int ADCValue;
    __delay_ms(10);
    ADCON0bits.GO = 1;              //start conversion
    while (ADCON0bits.GO)  continue;//wait for conversion to finish
    ADCValue = ADRESH << 8;         //get the 2 msbs of the result and rotate 8 bits to the left
    ADCValue = ADCValue + ADRESL;   //now add the low 8 bits of the resut into our return variable
    return (ADCValue);              //return the 10bit result in a single variable
}
//***********************************************************************************
//***********************************************************************************
void main( )
{
    unsigned int AnalogValue = 0;
    unsigned char i = 0;
    init();
    while(1)
    {
        AnalogValue = Read_ADC_Value();
        __delay_ms(400);
        if(AnalogValue <= 200)
            LATAbits.LATA5 ^= 1;
        else
            LATAbits.LATA5 = 0;
    }
}
沙发
eleczj|  楼主 | 2014-4-11 00:51 | 只看该作者
。。。XC8
打错了~

使用特权

评论回复
板凳
eleczj|  楼主 | 2014-4-13 15:40 | 只看该作者
:lol...自己搞定了。。。


将ADCON0bits.GO更改为ADCON0bits.GO_nDONE即可。

使用特权

评论回复
地板
d-jason| | 2016-12-30 22:29 | 只看该作者
如何找到pic12f1501.h???

使用特权

评论回复
5
d-jason| | 2017-1-3 21:25 | 只看该作者
OK啦!!!!!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

20

帖子

1

粉丝