请选择 进入手机版 | 继续访问电脑版
搜索
查看: 80|回复: 5

LPC54114 ADC中断函数中一个奇怪的现象

[复制链接]
  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 66 天

    [LV.6]常住居民II

    3

    主题

    177

    帖子

    493

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    493
    发表于 2018-4-16 23:18:32 | 显示全部楼层 |阅读模式

    如题,调试LPC54114 ADC中,红色语句在我看来没有必要,然而删除此条语句后,ADC数据无法读取,出现类似死机状态。
    哪位朋友知道是什么原因。
    源程序:
    void ADC0_SEQA_IRQHandler(void)
    {          
            if (kADC_ConvSeqAInterruptFlag == (kADC_ConvSeqAInterruptFlag & ADC_GetStatusFlags(ADC0)))
          {
                ADC_GetChannelConversionResult(ADC0, ADC_CHANNEL_NUM, gAdcResultInfoPtr);
                adc_data = gAdcResultInfoPtr->result;  //important,but why?
                   
               ADC_ClearStatusFlags(ADC0, kADC_ConvSeqAInterruptFlag);
               gAdcConvSeqAIntFlag = true;
      }
    }

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    178

    帖子

    1000

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1000
    发表于 7 天前 | 显示全部楼层
    红色语句就是要读转换结果,你把它屏蔽了,当然无法读取

    评分

    参与人数 1金豆 +1 收起 理由
    doatello + 1 赞一个!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    10 小时前
  • 签到天数: 95 天

    [LV.6]常住居民II

    28

    主题

    547

    帖子

    1928

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    1928
    发表于 7 天前 | 显示全部楼层
    你觉得没必要? 那你觉得 ADC采集的数据在哪里?

    评分

    参与人数 1金豆 +1 收起 理由
    doatello + 1 赞一个!

    查看全部评分

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    6

    帖子

    64

    积分

    注册会员

    Rank: 2

    积分
    64
    发表于 7 天前 | 显示全部楼层
    我知道楼主的意思了。楼主是觉得在执行完
    1. ADC_GetChannelConversionResult
    复制代码
    函数后结果已经保存到了
    1. gAdcResultInfoPtr
    复制代码
    指向的内存中了,所以就不需要在ISR中再存储到
    1. adc_data
    复制代码
    了。但是有可能代码里面不是这么做的,可能会产生楼主所说的问题。楼主应当提供完整的代码,这样才能知道为什么出错。

    评分

    参与人数 1金豆 +1 收起 理由
    doatello + 1 赞一个!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    11 小时前
  • 签到天数: 66 天

    [LV.6]常住居民II

    3

    主题

    177

    帖子

    493

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    493
     楼主| 发表于 7 天前 | 显示全部楼层
    谢谢各位的分析,我在ADC初始化里面开启了ADC中断,可能与定时器0中断出现了中断嵌套。我关闭了定时器0中断,在主循环中采取读取ADC数据,或者ADC中断读取数据都是正常的。中断嵌套以后有时间再研究吧。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    0

    主题

    9

    帖子

    40

    积分

    新手上路

    Rank: 1

    积分
    40
    发表于 5 天前 | 显示全部楼层
    我是来学习的
    哎...今天够累的,签到来了2...
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

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

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

    GMT+8, 2018-4-24 20:37 , Processed in 0.209308 second(s), 13 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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