eryueniao 发表于 2014-10-10 09:37:46

求助KL05 ADC问题(已解决)

本帖最后由 FSL_TICS_Robin 于 2014-11-27 10:26 编辑

使用KL05单片机的ADC功能,采到的值波动很大,不知道怎么回事
我使用的是外部参考电压,采集的是电阻分压值(万用表测的很稳,但是采集到的不稳),时钟是总线时钟8分频
初始化函数
PORTB_PCR5 = PORT_PCR_MUX(0);//ADC_TEMPER/* ¿ªÆôPB5¹Ü½ÅÄ£Ä⹦ÄÜ          */
                PORTA_PCR9 = PORT_PCR_MUX(0);//ADC_BLOOD/* ¿ªÆôPA9¹Ü½ÅÄ£Ä⹦ÄÜ
                PORTA_PCR12 = PORT_PCR_MUX(0);//ADC_VCC/* ¿ªÆôPA12¹Ü½ÅÄ£Ä⹦ÄÜ
    SIM_SCGC6 |= SIM_SCGC6_ADC0_MASK;                                 /* ¿ªÆôADCʱÖÓ                  */
    /*
   * ÅäÖÃADCÏà¹Ø¹¦ÄÜ
   */
    ADC0_CFG1 = ADC_CFG1_ADLSMP_MASK | ADC_CFG1_MODE(1) | ADC_CFG1_ADICLK(1);
                ADC0_CFG1 |= ADC_CFG1_ADIV(3);
    ADC0_SC2 |= ADC_SC2_REFSEL(0);/* Ñ¡ÔñµçÔ´²Î¿¼Ô´ */
    ADC0_SC1(0) = ADC_SC1_ADCH(1);                                    /*¿ªÆôÖÐ¶Ï Ñ¡ÔñÐŵÀ1         */
        //#define ADC0_SC1(index)                        ADC_SC1_REG(ADC0_BASE_PTR,index)
        //#define ADC_SC1_REG(base,index)                  ((base)->SC1)
       
    ADC0_SC1(0) |= ADC_SC1_AIEN_MASK;

FSL_TICS_Robin 发表于 2014-10-10 09:43:51

楼主你好
请问波动多大呢?
配置了多少位的AD采样呢?
你的注释全是乱码呢

eryueniao 发表于 2014-10-10 09:49:48

FSL_TICS_Robin 发表于 2014-10-10 09:43
楼主你好
请问波动多大呢?
配置了多少位的AD采样呢?


12位的,我是从KILL复制过来的,我连续采3次,490,220,120;
有时候中间的采集还会是0,我用的是查询,没开中断

FSL_TICS_Robin 发表于 2014-10-10 10:33:26

PORTB_PCR5 = PORT_PCR_MUX(0);//ADC_TEMPER       
这个PTB5在你的KL05芯片上还复用了NMI_b不可屏蔽功能,你需要特殊操作才能将此功能关闭。所以我们一般不建议把芯片NMI_b和Reset_b引脚做其他用处。
你试一下采样其他两个引脚电压是否正常。

eryueniao 发表于 2014-10-10 10:55:41

FSL_TICS_Robin 发表于 2014-10-10 10:33
PORTB_PCR5 = PORT_PCR_MUX(0);//ADC_TEMPER       
这个PTB5在你的KL05芯片上还复用了NMI_b不可屏蔽功能,你需 ...

哦,这样啊,谢啦
我试了另一个是正常的
那这个PB5该怎么屏蔽掉

FSL_TICS_Robin 发表于 2014-10-10 11:15:15

eryueniao 发表于 2014-10-10 10:55
哦,这样啊,谢啦
我试了另一个是正常的
那这个PB5该怎么屏蔽掉

建议参考:
【经验分享】使用CW10.x的PE禁用NMI不可屏蔽中断
【经验分享】IAR编译环境禁用NMI不可屏蔽中断
页: [1]
查看完整版本: 求助KL05 ADC问题(已解决)