请选择 进入手机版 | 继续访问电脑版
查看: 1514|回复: 8

[求助] KEAZN64 ADC FIFO 进不去中断

[复制链接]

该用户从未签到

3

主题

23

帖子

0

注册会员

Rank: 2

积分
164
最后登录
2021-10-7
发表于 2021-9-1 10:00:23 | 显示全部楼层 |阅读模式
本帖最后由 功夫崽崽 于 2021-9-1 10:19 编辑

    小弟初识 飞思卡尔KEA系列单片机,在调试ADC FIFO时 遇到问题,进入不了中断!   有个现象 “使能扫描模式 ADC->SC4   |=  0x00000040;”
就能进入中断,但是转换结果都是通道0,  屏蔽扫描模式就进不去中断,求大佬们指点一二!  也尝试修改过配置顺序结果一样还是不能进入转换完成
中断。  


void ADC0_Init(void)
{
        SIM->SCGC             |=  0x20000000;                  //Enable bus clock in ADC
   
        ADC->APCTL1        |=  0x00000003;                   //CH0-CH1 PIN                 
        //ADC->SC4           |=  0x00000040;                   //enable scan mode
        ADC->SC4              |=  0x00000001;;                 //FIFO Level = 2    大于0 使能fifo   2个通道
                    
        ADC->SC3             &=  0x00000003;                  //Bus clock
        ADC->SC3              |=  0x00000040;                  //clock / 4    16/4=4MHz
        ADC->SC3              |=  0x00000010;                  //long sample time
        ADC->SC3              |=  0x00000008;                  //12 bit mode
   
        ADC->SC2              |=  0x00000000;                  //软件触发、关闭比较功能、VrefH、L 为参考

        ADC->SC1             &= ~0x0000001F;
        ADC->SC1              |=  0x00000000;                  //通道00
        
        ADC->SC1             &= ~0x0000001F;
        ADC->SC1              |=   0x00000001;                  //通道01                                   
   
        ADC->SC1              |=   0x00000020;                  //continue mode
        ADC->SC1              |=   0x00000040;                  //Conversion compaer interrupt enable   
        
        NVIC_ClearPendingIRQ(ADC0_IRQn);                   /* Clear any Pending IRQ for all ADC0_IRQn  (#23) */
        NVIC_EnableIRQ(ADC0_IRQn);                             /* Set Enable IRQ for ADC0_IRQn */
        NVIC_SetPriority(ADC0_IRQn,0);                          /* Set Priority for ADC0_IRQn */        
}

void ADC0_IRQHandler(void)
{
      static uint8_t  adcFifoCovOk=false;
   
      static uint16_t adcFifoPt  = 0;
   
      static uint16_t adcBuf[70] = {0};
   
     // dat = ADC->R;
      adcBuf[adcFifoPt++] = ADC->R;
      adcBuf[adcFifoPt++] = ADC->R;            
}








最佳答案

楼主你好KEA官方推荐使用S32 Design Studio for ARM Version 2018.R1,有配套的Quick Start Package for the FRDM-KEAZ evaluation board供你参考。 有现成的例子可供你参考: FRDM-KEA-QSP\Quick Start Package v8 ...

寄存器值

寄存器值
回复

使用道具 举报

该用户从未签到

648

主题

6301

帖子

0

超级版主

Rank: 8Rank: 8

积分
19555
最后登录
2024-3-29
发表于 2021-9-1 16:00:24 | 显示全部楼层
楼主你好KEA官方推荐使用S32 Design Studio for ARM Version 2018.R1,有配套的Quick Start Package for the FRDM-KEAZ evaluation board供你参考。

有现成的例子可供你参考:
FRDM-KEA-QSP\Quick Start Package v8\Code Project Examples and Sample Drivers (Evaluation Grade Only)\FRDM-KEAZ64\Driver Test SW for KEAZ64\Driver Test SW for KEAZ64\FRDM_KEA64_ADC_FIFO
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

3

主题

23

帖子

0

注册会员

Rank: 2

积分
164
最后登录
2021-10-7
 楼主| 发表于 2021-9-1 10:09:56 | 显示全部楼层
SC4_ASCANE=1 就可以进入中断,但是结构不对,一直是一个值。
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

23

帖子

0

注册会员

Rank: 2

积分
164
最后登录
2021-10-7
 楼主| 发表于 2021-9-1 12:12:04 | 显示全部楼层
    ADC->SC1         =  0x00000000;                 //通道00

    ADC->SC1         =  0x00000040 |                //Conversion compaer interrupt enable
                                0x00000020 |                //continue mode
                                0x00000001;                 //通道01

    不进中断的问题找到了。  参考手册 P333  Example: 24.5.2.1.1 FIFO ADC initialization routine
    但是新的问题又来了,  第一次中断 CH0、CH1  第二次变成 CH1、CH0 了 第三次又回来了 。。。
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

23

帖子

0

注册会员

Rank: 2

积分
164
最后登录
2021-10-7
 楼主| 发表于 2021-9-1 12:24:11 | 显示全部楼层
本帖最后由 功夫崽崽 于 2021-9-1 14:20 编辑
功夫崽崽 发表于 2021-9-1 12:12
ADC->SC1         =  0x00000000;                 //通道00

    ADC->SC1         =  0x00000040 |   ...

仿真的时候ADC中断里有断点停的时候就会顺序错。  全速用串口打印出来没有问题。  
https://www.nxpic.org.cn/module/ ... ighlight=ADC%2Bfifo
没有像上面版主一样重新 新建工程。
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

23

帖子

0

注册会员

Rank: 2

积分
164
最后登录
2021-10-7
 楼主| 发表于 2021-9-1 16:39:20 | 显示全部楼层
小恩GG 发表于 2021-9-1 16:00
楼主你好KEA官方推荐使用S32 Design Studio for ARM Version 2018.R1,有配套的Quick Start Package for th ...

谢谢。          还想请教您一个问题, KEAZN64 是不是没有 单独的GPIO外部中断?   想用外部中断得用KBI模块吧?    看过您的帖子KEA128的IRQ中断。   查kea64的手册  SIM_PINSEL 没有管脚的选项。 所以kea64 想用外部中断就得用KBI 吧?   谢谢 谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

648

主题

6301

帖子

0

超级版主

Rank: 8Rank: 8

积分
19555
最后登录
2024-3-29
发表于 2021-9-1 17:17:33 | 显示全部楼层
功夫崽崽 发表于 2021-9-1 16:39
谢谢。          还想请教您一个问题, KEAZN64 是不是没有 单独的GPIO外部中断?   想用外部中断得用KBI ...

KEAZN64的IRQ(PTA5)和复位引脚共用一个引脚所以不合适,不像KEA还有多个引脚可以选用该功能
所以只能用KBI来当作外部中断了
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

23

帖子

0

注册会员

Rank: 2

积分
164
最后登录
2021-10-7
 楼主| 发表于 2021-9-1 17:26:32 | 显示全部楼层
小恩GG 发表于 2021-9-1 17:17
KEAZN64的IRQ(PTA5)和复位引脚共用一个引脚所以不合适,不像KEA还有多个引脚可以选用该功能
所以只能用KB ...

OK    这下就有方向了。要不老不死心。。。
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

8

帖子

0

注册会员

Rank: 2

积分
155
最后登录
2022-11-23
发表于 2022-10-19 13:56:19 | 显示全部楼层
楼主 数据交错的问题是什么呀 我现在也出现了这个问题
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-3-29 19:48 , Processed in 0.151377 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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