找回密码
 立即注册
查看: 139|回复: 14

请教前辈,在工具里面设置了3.0V的低压检测,那还用不用在代码里面设置

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2025-09-17 07:34:56
已绑定手机

18

主题

68

回帖

864

积分

高级会员

积分
864
发表于 7 天前 | 显示全部楼层 |阅读模式
RSTCFG = LVD3V0;

看PDF文件里面示例是有,上面的就是在里面复制的。
在中断里面保存一个LONG能行不?
回复

使用道具 举报 送花

3

主题

1973

回帖

794

积分

等待验证会员

积分
794
发表于 7 天前 | 显示全部楼层
尊敬的前辈:

您好!关于您在帖子中提出的问题,我将从硬件配置与软件配置的协同关系、LVD(低压检测)功能的实现机制、以及中断中使用 LONG 类型保存数据的可行性三个方面进行详细分析,供您参考。

一、关于是否需要在代码中设置 RSTCFG = LVD3V0;

在您使用的国芯MCU中,低压检测(Low Voltage Detection, LVD)功能通常由硬件模块实现,并可通过寄存器进行配置。在一些开发工具(如配置工具或IDE)中设置的“30V低压检测”,本质上是对LVD模块的电压阈值进行配置,但具体是否生效,仍需结合代码中对相关寄存器的初始化情况进行判断。

1. 工具配置与代码配置的关系
配置工具设置:此类工具通常生成初始化代码,将配置写入对应的寄存器,例如 RSTCFG 寄存器的某些位段用于设置LVD阈值。
手动配置代码:若工具未自动生成相关配置,或您希望确保配置的正确性,仍需在代码中显式设置 RSTCFG = LVD3V0;。

2. 建议做法
建议保留代码设置:即使在工具中设置了30V的LVD阈值,也建议在代码中保留 RSTCFG = LVD3V0;,以确保配置的显性化和可维护性。
查看生成代码:若您使用的是配置工具,请检查其生成的初始化代码中是否已经包含了对 RSTCFG 的设置。若已包含,则无需重复设置;若未包含,则必须手动添加。

二、关于中断中使用 LONG 类型保存数据的可行性

在嵌入式系统中,中断服务程序(ISR)的设计应尽量简洁、高效,避免使用复杂类型或耗时操作。关于在中断中使用 LONG 类型保存数据的问题,需从以下几个方面考虑:

1. 数据类型大小与寄存器宽度
LONG 类型长度:在大多数32位MCU平台上,long 类型为32位,占用4字节。
原子操作支持:若目标平台支持对32位数据的原子操作(即不会被中断打断),则在中断中使用 long 类型是可行的。

2. 编译器与平台兼容性
编译器行为:不同编译器对 long 类型的处理方式可能不同,建议查阅所用编译器的手册,确认其是否支持在中断中使用 long 类型。
内存对齐问题:确保访问的 long 类型变量地址对齐,否则可能导致访问异常或性能下降。

3. 推荐做法
使用标准类型:建议使用标准类型定义,如 int32t 或 uint32t,以提高可移植性和可读性。
避免复杂操作:在中断中应避免使用结构体、浮点运算等复杂操作,long 虽属基本类型,但仍建议仅用于简单赋值或标志位操作。
考虑使用全局变量加锁机制:如需在中断与主程序之间共享数据,建议使用原子变量、标志位或加锁机制,确保数据一致性。

三、总结与建议

| 问题 | 建议 |
|------|------|
| 是否需要在代码中设置 RSTCFG = LVD3V0; | 建议保留,或检查工具生成代码是否已包含该配置 |
| 中断中能否使用 LONG 类型 | 可行,但需确保平台支持原子操作,并避免复杂逻辑 |

如您方便,可贴出部分初始化代码或中断服务程序代码,以便进一步分析具体配置和使用情况。

感谢您对国芯MCU的关注与支持,若有其他技术问题,欢迎继续交流!

祝工作顺利!

国芯人工智能助手  
2025年4月5日

[本文内容由国芯人工智能辅助生成,仅供参考]
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2025-09-17 07:34:56
已绑定手机

18

主题

68

回帖

864

积分

高级会员

积分
864
发表于 7 天前 | 显示全部楼层
国芯人*** 发表于 2025-9-10 08:12
尊敬的前辈:

您好!关于您在帖子中提出的问题,我将从硬件配置与软件配置的协同关系、LVD(低压检测)功 ...

事实上我并没有在对应的头文件里面找到 LVD3V0的定义。
虽然最终在PDF的汇编示例中看到了 LVD3V0 EQU 03H
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2025-09-17 07:34:56
已绑定手机

18

主题

68

回帖

864

积分

高级会员

积分
864
发表于 7 天前 | 显示全部楼层
国芯人*** 发表于 2025-9-10 08:12
尊敬的前辈:

您好!关于您在帖子中提出的问题,我将从硬件配置与软件配置的协同关系、LVD(低压检测)功 ...

另外,在工具中禁止了低压中断,使用低压复位
代码中
PCON &= 0XDF;ELVD = 1;PLVD = 1;

这样是否会再次打开低压中断?

点评

工具和代码同时配置了某功能,以代码设置为准 PCON &= 0XDF; //清中断标识位LVDF ELVD = 1; //允许低压检测中断 PLVD = 1; //设置低压检测中断优先级  详情 回复 发表于 7 天前
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2025-09-17 07:34:56
已绑定手机

18

主题

68

回帖

864

积分

高级会员

积分
864
发表于 7 天前 | 显示全部楼层
国芯人*** 发表于 2025-9-10 08:12
尊敬的前辈:

您好!关于您在帖子中提出的问题,我将从硬件配置与软件配置的协同关系、LVD(低压检测)功 ...

原子操作是啥意思?我用的8H1K08-SOP16的芯片
这个有吗?最多能保存多少内容?

点评

保存一个LONG指的是保存到哪里?EEPROM?这个型号有4K EEPROM可用 EEPROM的使用 请 配合比较器做掉电检测 | 唯一正解,电力系统标准应用 - EEPROM/DataFlash 国芯人工智能技术交流网站 - AI32位8051交流社区 [atta  详情 回复 发表于 7 天前
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:185
  • 最近打卡:2025-09-17 09:20:00

782

主题

1万

回帖

1万

积分

管理员

积分
19162
发表于 7 天前 | 显示全部楼层
STC8,  LVD, 有4级电压门槛可设置;
LVD如允许复位, 低于这个电压就复位,中断就不会再产生/不会再响应
LVD 如不允许复位,就可以产生中断。

建议用比较器
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-09-17 08:46:46
已绑定手机

82

主题

3125

回帖

6923

积分

荣誉版主

无情的代码机器

积分
6923
发表于 7 天前 | 显示全部楼层
xiaob*** 发表于 2025-9-10 08:17
另外,在工具中禁止了低压中断,使用低压复位
代码中
PCON &= 0XDF;ELVD = 1;PLVD = 1;


工具和代码同时配置了某功能,以代码设置为准
PCON &= 0XDF; //清中断标识位LVDF
ELVD = 1;  //允许低压检测中断
PLVD = 1; //设置低压检测中断优先级

三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:561
  • 最近打卡:2025-09-17 10:09:19
已绑定手机

86

主题

6126

回帖

1万

积分

超级版主

积分
11342
发表于 7 天前 | 显示全部楼层
不要用低压中断保存EEPROM,建议用比较器
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-09-17 08:46:46
已绑定手机

82

主题

3125

回帖

6923

积分

荣誉版主

无情的代码机器

积分
6923
发表于 7 天前 | 显示全部楼层
xiaob*** 发表于 2025-9-10 08:20
原子操作是啥意思?我用的8H1K08-SOP16的芯片
这个有吗?最多能保存多少内容? ...

保存一个LONG指的是保存到哪里?EEPROM?这个型号有4K EEPROM可用


EEPROM的使用 请 配合比较器做掉电检测 | 唯一正解,电力系统标准应用 - EEPROM/DataFlash 国芯人工智能技术交流网站 - AI32位8051交流社区

截图202509100902458769.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:142
  • 最近打卡:2025-09-17 07:34:56
已绑定手机

18

主题

68

回帖

864

积分

高级会员

积分
864
发表于 7 天前 | 显示全部楼层
erci*** 发表于 2025-9-10 08:59
工具和代码同时配置了某功能,以代码设置为准
PCON &= 0XDF; //清中断标识位LVDF
ELVD = 1;  //允许低压 ...

在之前的板子上用的是比如15W或者8C的芯片,是用变压器供电,利用一个二极管取了提前掉电的信号,是在15V端取得的,所以时间上很充分。
并且没有打开低压中断,但是测试中发现不打开保存的也不够稳定,于是打开了,但是在中断服务中只有这点代码。保存用的外中断。这个代码存在很久了。
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-9-17 18:10 , Processed in 0.124912 second(s), 98 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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