标题:
STC8H的RSTFLAG寄存器是做什么用的?
[打印本页]
作者:
michaelchain
时间:
2022-2-6 21:58
标题:
STC8H的RSTFLAG寄存器是做什么用的?
在STC8H手册上,
RSTFLAG 复位标志寄存器, 地址 FE09H, 有三个标志位 SWR, ROMOV EXRST
整个手册只有定义没有说明也没有使用,
在STC8H8K64U的例程
http://www.stcmcudata.com/STC8F- ... 8K64U-DEMO-CODE.ZIP
其中"39-通过USB发送命令读取ADC测试程序"里面用到了
void UsbInit()
{
P3M0 = 0x00;
P3M1 = 0x03;
P_SW2 |= 0x80;
RSTFLAG = 0x07;
IRC48MCR = 0x80;
while (!(IRC48MCR & 0x01));
P_SW2 &= ~0x80;
USBCLK = 0x00;
USBCON = 0x90;
IP2H |= 0x80; //USB 中断优先级为 3 级(最高级)
IP2 |= 0x80;
WriteReg(FADDR, 0x00);
WriteReg(POWER, 0x08);
WriteReg(INTRIN1E, 0x3f);
WriteReg(INTROUT1E, 0x3f);
WriteReg(INTRUSBE, 0x00);
WriteReg(POWER, 0x01);
Ep0Stage.bStage = EPIDLE;
IE2 |= 0x80;
}
复制代码
没太明白这个寄存器操作的意义是什么?
有STC的技术或者用过这个寄存器的人帮忙解释一下吗?
作者:
188610329
时间:
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位的看门狗复位, 你可以自行查验,此功能其实并没有公开,手册上的记录应该是疏忽造成。
作者:
188610329
时间:
2022-3-1 11:23
最新的手册, 已经添加了该寄存器的说明, 详见: P192 (PDF: 212)
STC8H-20220228.pdf
(18.12 MB, 下载次数: 4)
2022-3-1 11:23 上传
点击文件名下载附件
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1