查看: 4053|回复: 7

[已解决] KL02Z ADC测量某个通道值时不准(已解决)

[复制链接]
  • TA的每日心情
    开心
    2017-4-27 08:44
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    26

    主题

    577

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1703
    最后登录
    1970-1-1
    发表于 2014-7-3 10:22:42 | 显示全部楼层 |阅读模式
     使用ADC 10bit测量PTB10时,读到的值在范围260-360之间,为什么会有如此大的波动呢?换一个通道,使用PTB11时也是这样的情况。。。
    代码如下:
    void InitADC( void )
    {
            SIM_SCGC6 |= SIM_SCGC6_ADC0_MASK;  // enable ADC0 clock
    /*ADC clock frequency fADCK less than or equal to 4 MHz*/
        ADC0_CFG1 = ADC_CFG1_ADIV(0)|       //The divide ratio is 1 and the clock rate is (input clock)/1.
                            ADC_CFG1_MODE(2)|       //It is single-ended 10-bit conversion.
                            ADC_CFG1_ADICLK(0)|     //Bus clock
                            ADC_CFG1_ADLPC_MASK|
                            ADC_CFG1_ADLSMP_MASK; 
        ADC0_SC2 = 0;
        //ADC0_SC1A = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(TEMP_CHANNEL); 
        //PMC_REGSC |= PMC_REGSC_BGBE_MASK;    
    }
     
    unsigned char TriggerADC(unsigned char Channel)
    {
      
        if(Channel == BG_CHANNEL)                                          // Bandgap is selected as input
            PMC_REGSC |= PMC_REGSC_BGBE_MASK;                        // Bandgap buffer enabled
            
        ADC0_SC1A = Channel;                   // update the channel value
        return 1;
    }
     
    unsigned int ReadADC_Channel(unsigned char Channel)
    {
        unsigned int i = 0, adc_value = 0;
     
        for(i=0; i> 4;
     
        TriggerADC(AD_DISABLE);
     
        return adc_value;
    }
     
    然后设置:
    PORTB_PCR10 = PORT_PCR_MUX(0);      //ALT0--ADC0_SE9
    读取:
    g_adc_value = ReadADC_Channel(9);
     
    读到的值变化较大,为什么会出现这样的现象呢?是哪里没有配置好吗?求高手帮忙
    另外ReadADC_Channel(29);和ReadADC_Channel(30);时,VREFH=1023,VREFL=0,是正常的?
    我知道答案 目前已有6人回答
    回复

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2014-7-3 11:45:58 | 显示全部楼层

    RE:KL02Z ADC测量某个通道值时不准

    你好,楼主!
    能否请你介绍一下你测试的是什么信号,还有你的代码使用的官方提供的代码吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-27 08:44
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    26

    主题

    577

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1703
    最后登录
    1970-1-1
     楼主| 发表于 2014-7-3 13:30:54 | 显示全部楼层

    RE:KL02Z ADC测量某个通道值时不准

    不是官方提供的代码,稍作了修改。Init_ADC做了修改,用的10bit模式,bus clock 1分频。另外sysinit时,使用的FEI mode:
    mcg_clk_hz = 21000000;
    这个和时钟有关系吗?如果时钟太快或者太慢了都不行吗?
    主要是为了测量某个管脚的电压。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2014-7-3 13:54:26 | 显示全部楼层

    回复:KL02Z ADC测量某个通道值时不准

    回复第 3 楼 于2014-07-03 13:30:54发表:
    不是官方提供的代码,稍作了修改。Init_ADC做了修改,用的10bit模式,bus clock 1分频。另外sysinit时,使用的FEI mode:
    mcg_clk_hz = 21000000;
    这个和时钟有关系吗?如果时钟太快或者太慢了都不行吗?
    主要是为了测量某个管脚的电压。
    那这个的管脚上接的是什么信号?
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-4-27 08:44
  • 签到天数: 64 天

    连续签到: 1 天

    [LV.6]常住居民II

    26

    主题

    577

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1703
    最后登录
    1970-1-1
     楼主| 发表于 2014-7-3 15:06:34 | 显示全部楼层

    RE:KL02Z ADC测量某个通道值时不准

    接的电压信号。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2014-7-3 15:13:00 | 显示全部楼层

    回复:KL02Z ADC测量某个通道值时不准

    回复第 5 楼 于2014-07-03 15:06:34发表:
    接的电压信号。。
     
    你好,楼主!
    我的意思是如果你连接测试引脚的电压信号有抖动的话,测试结果也会有跳动,建议你使用官方例程泡一下!
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2019-4-1 22:48
  • 签到天数: 302 天

    连续签到: 1 天

    [LV.8]以坛为家I

    87

    主题

    7322

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    4614
    最后登录
    2021-1-25
    发表于 2014-7-3 23:32:28 | 显示全部楼层

    RE:KL02Z ADC测量某个通道值时不准

    这个主要还是看官网的实例去做参考,不稳定的话,会不准的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    273

    帖子

    0

    高级会员

    Rank: 4

    积分
    718
    最后登录
    1970-1-1
    发表于 2014-7-4 09:51:16 | 显示全部楼层

    RE:KL02Z ADC测量某个通道值时不准

    用正确的例程测是相同信号,看看结果是否一致!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 21:38 , Processed in 0.103686 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表