查看: 3096|回复: 3

[求助] KEA8使用ADC利用FIFO采样取值后值是相反的求助

[复制链接]

该用户从未签到

1

主题

6

帖子

0

新手上路

Rank: 1

积分
49
最后登录
2018-7-26
发表于 2018-6-5 19:33:10 | 显示全部楼层 |阅读模式
最近在用KEA 8的ADC多路采样功能呢? 配置时钟,软件触发,二级FIFO深度, 使能中断,
选通两路:第二路(PTA6脚)和温度采集功能。
void ADC_Init()
{
        SIM->SCGC   |= SIM_SCGC_ADC_MASK;           /* Enable bus clock in ADC, BUS CLOCK=10MHz*/
        ADC->APCTL1  = ADC_APCTL1_ADPC(1<<2); /* when ADx=1 I/O control disabled so that cold used as analog inputs */                                                      
        ADC->SC3  |= ADC_SC3_ADICLK(0x01)|                /* Bus clock Dived By 2 selected,ADC Clock =5MHz*/
                             ADC_SC3_ADIV(0x03)|                    /* ADC Clock = 625Khz£¬refer to Temp convention long sample no more than 1Mhz*/  
                             ADC_SC3_ADLSMP_MASK|               /* adapt long sample time*/
                            ADC_SC3_MODE(TWELVE_BIT);          /* TWELVE_BIT Conversion Mode Selection */       
        ADC->SC4  |= ADC_SC4_AFDEP(0x01);                  /* 2-level FIFO is enabled*/       
        ADC->SC2   = 0x00;                                                   /* Software Conversion trigger, disable compare function*/               
        ADC->SC1   = ADC_SC1_ADCO_MASK|
                             ADC_SC1_AIEN_MASK|ADC_SC1_ADCH(channel_2);  /* set up channel_2 for presure sensor  */
        ADC->SC1   = ADC_SC1_ADCH(channel_TempSensor)|
                             ADC_SC1_ADCO_MASK|ADC_SC1_AIEN_MASK;        /* Continuous mode operation */               
                                                                               
        NVIC_EnableIRQ(ADC0_IRQn); /* enable ADC interrupt */       
        NVIC_SetPriority(ADC0_IRQn,0);         
}
读数据中断函数: 存储在数组里留待备用;
void ADC0_IRQHandler()
{
    PresureBuff[Datacount]  = ADC->R&ADC_R_ADR_MASK;
    TempBuff[Datacount] = ADC->R&ADC_R_ADR_MASK;
    Datacount++;
    if(Datacount==5)Datacount = 0;       
}


问题:为啥最后调试的相应的值有时候会反的,不解。
有人遇见过同样问题吗?





我知道答案 目前已有3人回答

正常寄存器的值

正常寄存器的值

错误存反的值

错误存反的值
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24884
最后登录
2025-7-20
发表于 2018-6-6 09:15:18 | 显示全部楼层
楼主你好,把你测试代码发出来,我这边测试看看呢。
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

6

帖子

0

新手上路

Rank: 1

积分
49
最后登录
2018-7-26
 楼主| 发表于 2018-7-9 10:45:58 | 显示全部楼层
小恩GG 发表于 2018-6-6 09:15
楼主你好,把你测试代码发出来,我这边测试看看呢。

大神,你好。这问题我这边自己测试还是没有彻底解决,目前我采用的单次转换后再次启动转换的办法解决了采集的数据的问题,但连续转换还是会出现数据错位
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

6

帖子

0

新手上路

Rank: 1

积分
49
最后登录
2018-7-26
 楼主| 发表于 2018-7-9 10:47:16 | 显示全部楼层
附我测试ADC采集的样例工程

KEA8-ADC-FIFO测试.rar

648.88 KB, 下载次数: 55, 下载积分: 威望 1

回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-21 04:04 , Processed in 0.090724 second(s), 25 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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