Mike_zz 发表于 2024-12-21 11:49:35

8H1K08上电,外设初始化完之后打印复位标志寄存器(RSTFLAG)的值

<p><img src="data/attachment/forum/202412/21/114725zzo0hwknjlsvllno.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/21/114732anda2r8aigz2ba0a.png" alt="image.png" title="image.png" /><br />
<img src="data/attachment/forum/202412/21/143731mg6l4ymzqu97jj7h.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/21/114748e0jhia41f0g2i49k.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/21/114820v4cjmzeiaabdeeem.png" alt="image.png" title="image.png" /></p>
<p>想知道为什么上电就会有看门狗复位标志和代码区溢出标志</p>
<p>按照手册说明,RSTFLAG上电读出来的值应该是0x14,我读出来的值却是0x1A</p>
<p>我有使用了看门狗,但是我24M的主频,设置了256分频,喂狗时间间隔为40ms,理论上不会溢出才对</p>
<p>使用其他评论区提供的工程直接测试</p>
<p>void main()<br />
{<br />
P_SW2 |= 0x80;//扩展寄存器访问使能</p>
<pre><code>UartStdOutInit();

printf(&quot;Start!!!\r\n&quot;);
printf(&quot;RSTFLAG %bx\r\n&quot;,RSTFLAG);
if(RSTFLAG &amp; 0x10)//LVDRSTF
{
    RSTFLAG |= 0x10;    //写1清除标志位
    printf(&quot;LVD reset\r\n&quot;);
}
if(RSTFLAG &amp; 0x08)//WDTRSTF
{
    RSTFLAG |= 0x08;    //写1清除标志位
    printf(&quot;Watchdog reset\r\n&quot;);
}
if(RSTFLAG &amp; 0x04)//SWRSTF
{
    RSTFLAG |= 0x04;    //写1清除标志位
    printf(&quot;Software reset\r\n&quot;);
}
if(RSTFLAG &amp; 0x02)//ROMOVF
{
    RSTFLAG |= 0x02;    //写1清除标志位
    printf(&quot;ROM Overflow reset\r\n&quot;);
}
if(RSTFLAG &amp; 0x01)//EXRSTF
{
    RSTFLAG |= 0x01;    //写1清除标志位
    printf(&quot;External reset\r\n&quot;);
}
</code></pre>
<p>//WDT_CONTR = 0x23;                           //使能看门狗,溢出时间约为0.5s<br />
//WDT_CONTR = 0x24;                           //使能看门狗,溢出时间约为1s<br />
//WDT_CONTR = 0x27;                           //使能看门狗,溢出时间约为8s</p>
<p>//    temp = 123;<br />
while (1)<br />
{<br />
//      WDT_CONTR |= 0x10;                      //清看门狗,否则系统复位<br />
}<br />
}</p>
<p><img src="data/attachment/forum/202412/21/165015cz2ogqogon2ohnuu.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/21/165001aa8ww3yqhbgm6b5d.png" alt="image.png" title="image.png" /></p>

邮箱 发表于 2024-12-21 22:35:00

<p><a href="https://www.stcaimcu.com/forum.php?mod=viewthread&amp;tid=11848&amp;highlight=RSTFLAG&amp;page=1&amp;extra=#pid120829">这个看下</a></p>

Mike_zz 发表于 2024-12-22 11:59:10

邮箱 发表于 2024-12-21 22:35
这个看下

应该不是这个问题,我的料号是比较早的,那时候还没有AI8051,而且我的寄存器是能读到值的
页: [1]
查看完整版本: 8H1K08上电,外设初始化完之后打印复位标志寄存器(RSTFLAG)的值