找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1313|回复: 2
打印 上一主题 下一主题
收起左侧

STC8H的RSTFLAG寄存器是做什么用的?

[复制链接]
跳转到指定楼层
楼主
ID:912806 发表于 2022-2-6 21:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在STC8H手册上,
RSTFLAG 复位标志寄存器, 地址 FE09H, 有三个标志位 SWR, ROMOV EXRST

整个手册只有定义没有说明也没有使用,
在STC8H8K64U的例程
http://www.stcmcudata.com/STC8F- ... 8K64U-DEMO-CODE.ZIP
其中"39-通过USB发送命令读取ADC测试程序"里面用到了
  1. void UsbInit()
  2. {
  3.         P3M0 = 0x00;
  4.         P3M1 = 0x03;
  5.         P_SW2 |= 0x80;
  6.         RSTFLAG = 0x07;
  7.         IRC48MCR = 0x80;
  8.         while (!(IRC48MCR & 0x01));
  9.         P_SW2 &= ~0x80;
  10.         USBCLK = 0x00;
  11.         USBCON = 0x90;
  12.         IP2H |= 0x80;                //USB 中断优先级为 3 级(最高级)
  13.         IP2 |= 0x80;
  14.         WriteReg(FADDR, 0x00);
  15.         WriteReg(POWER, 0x08);
  16.         WriteReg(INTRIN1E, 0x3f);
  17.         WriteReg(INTROUT1E, 0x3f);
  18.         WriteReg(INTRUSBE, 0x00);
  19.         WriteReg(POWER, 0x01);
  20.         Ep0Stage.bStage = EPIDLE;
  21.         IE2 |= 0x80;
  22. }
复制代码
没太明白这个寄存器操作的意义是什么?

有STC的技术或者用过这个寄存器的人帮忙解释一下吗?


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:624769 发表于 2022-2-9 00:05 | 只看该作者
仅仅只是一个标志位,用来记录最后一次单片机复位的原因,实际上,没有什么用。
你如果好奇的话,代表含义如下:
2位的:SWR:     其实应该是 SWRST  应来标记,本次复位的起因是由于  IAP_CONTR 的 SWRST置1所引起的复位。
1位的:ROMOV: 用来标志代码跑飞后(即PC指针超出了程序区的范围)引起的复位。
0位的:EXRST:  用来标志由外部引脚 P5.4 产生的复位。
此寄存器 写0无效,写1则清零。
注:此功能实际上属于测试阶段,STC8H3K,4K 系列会部分添加此功能,你的STC8H是否已经有了此功能,需要实际测试后才能知道。
另外,其实还有几个功能应该是在陆续添加的, 如 4位的 低压复位,3位的看门狗复位, 你可以自行查验,此功能其实并没有公开,手册上的记录应该是疏忽造成。
回复

使用道具 举报

板凳
ID:624769 发表于 2022-3-1 11:23 | 只看该作者
最新的手册, 已经添加了该寄存器的说明, 详见: P192 (PDF: 212)

STC8H-20220228.pdf (18.12 MB, 下载次数: 4)

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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