求助KL05 ADC问题(已解决)

2020-02-20 21:01发布

本帖最后由 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[index])
       
    ADC0_SC1(0) |= ADC_SC1_AIEN_MASK;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
FSL_TICS_Robin
1楼-- · 2020-02-21 02:35
 精彩回答 2  元偷偷看……
eryueniao
2楼-- · 2020-02-21 07:59
FSL_TICS_Robin 发表于 2014-10-10 09:43
楼主你好
请问波动多大呢?
配置了多少位的AD采样呢?

12位的,我是从KILL复制过来的,我连续采3次,490,220,120;
有时候中间的采集还会是0,我用的是查询,没开中断
FSL_TICS_Robin
3楼-- · 2020-02-21 12:23
PORTB_PCR5 = PORT_PCR_MUX(0);  //ADC_TEMPER       
这个PTB5在你的KL05芯片上还复用了NMI_b不可屏蔽功能,你需要特殊操作才能将此功能关闭。所以我们一般不建议把芯片NMI_b和Reset_b引脚做其他用处。
你试一下采样其他两个引脚电压是否正常。
eryueniao
4楼-- · 2020-02-21 14:50
FSL_TICS_Robin 发表于 2014-10-10 10:33
PORTB_PCR5 = PORT_PCR_MUX(0);  //ADC_TEMPER       
这个PTB5在你的KL05芯片上还复用了NMI_b不可屏蔽功能,你需 ...

哦,这样啊,谢啦
我试了另一个是正常的
那这个PB5该怎么屏蔽掉
FSL_TICS_Robin
5楼-- · 2020-02-21 16:53
eryueniao 发表于 2014-10-10 10:55
哦,这样啊,谢啦
我试了另一个是正常的
那这个PB5该怎么屏蔽掉

建议参考:
【经验分享】使用CW10.x的PE禁用NMI不可屏蔽中断
【经验分享】IAR编译环境禁用NMI不可屏蔽中断

一周热门 更多>