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

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-29 16:52:01

6

主题

7

回帖

96

积分

注册会员

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

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

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

请解忧!!!
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-05-03 10:05:34

718

主题

1万

回帖

1万

积分

管理员

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 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转换程序;
}

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-29 16:52:01

6

主题

7

回帖

96

积分

注册会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:328
  • 最近打卡:2025-03-09 19:40:01

9

主题

328

回帖

4501

积分

荣誉版主

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-05-03 10:05:34

718

主题

1万

回帖

1万

积分

管理员

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 15:19 , Processed in 0.188682 second(s), 85 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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