找回密码
 立即注册
查看: 830|回复: 5

stc单片机主程序中的ADC转换会被中断嵌套吗?

[复制链接]
  • TA的每日心情
    开心
    2024-3-17 10:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    3

    回帖

    44

    积分

    新手上路

    积分
    44
    发表于 2023-4-13 20:11:43 | 显示全部楼层 |阅读模式
    本帖最后由 qqb0701 于 2023-4-13 20:19 编辑

    版主,stc单片机的主程序中的ADC转换如果未完成会被中断程序中的ADC转换中断吗?
    因为单片机中只有一个ADC模块,转换的值公用一个寄存器。
    主程序的ADC转换值和中断程序中的ADC转换的值会不会出错,会不会丢失数据?

    这个问题困扰我好久了,因为控制电源时ADC检测值出错会损坏功率器件。

    请解忧!!!
    回复 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9532

    回帖

    1万

    积分

    管理员

    积分
    14106
    发表于 2023-4-13 21:25:45 | 显示全部楼层
    看不懂描述,帮忙重新描述下
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3044

    回帖

    6863

    积分

    超级版主

    积分
    6863
    发表于 2023-4-13 23:37:41 | 显示全部楼层
    ADC是一个外设,任何一个地方使用都要独占,主程序使用ADC,要等其转换完成,别的才可以启动转换。用一个使用志来宣示使用权限。
    bit   B_ADC_USE;  //标志正在使用

    非中断使用:
    B_ADC_USE = 1;  //宣示使用权限
    NOP(3);  //3个NOP
    ADC转换程序;
    B_ADC_USE = 0;  //使用结束

    中断使用:
    if(!B_ADC_USE)
    {
       ADC转换程序;
    }

    一般建议在一个地方统一转换,用信息传递给实际使用的函数。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-17 10:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    3

    回帖

    44

    积分

    新手上路

    积分
    44
     楼主| 发表于 2023-4-15 21:06:22 | 显示全部楼层
    梁工 发表于 2023-4-13 23:37
    ADC是一个外设,任何一个地方使用都要独占,主程序使用ADC,要等其转换完成,别的才可以启动转换。用一个使 ...

    谢谢,梁工。我也是这么用的,今天就是请专家验证需不需要这么做。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    前天 10:54
  • 签到天数: 163 天

    [LV.7]常住居民III

    9

    主题

    310

    回帖

    3785

    积分

    荣誉版主

    积分
    3785
    发表于 2023-4-15 21:32:29 | 显示全部楼层
    ADC_CONTR有一个ADC_START位,写1开始转换,完成后自动清零,可以通过这一位进行判断(确保不会被程序手动清零)
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9532

    回帖

    1万

    积分

    管理员

    积分
    14106
    发表于 2023-4-15 21:41:59 | 显示全部楼层
    1.png
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-20 05:10 , Processed in 0.060759 second(s), 51 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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