//=============================================
// 复位设置
//复位包括上电复位、低电压复位、看门狗超时溢出复位、外部复位
//上电复位:开机时上电复位是用于复位该芯片
//低电压复位:当VDD下降到低于LVR电压水平,系统会发生复位
//看门狗超时溢出复位:看门狗时钟超出设定的ILRC时钟周期复位,详细请参考看门狗
//外部复位:在外部复位引脚为高电平时,系统处于正常工作状态;一旦复位引脚检测到低电平,系统发生复位
//=============================================
#include "extern.h"
void PA5_Reset(void)
{
$ PA.5 In,Pull;//设置PA5为输入上拉
PADIER = 0b0010_0000;//开启数字输入使能
CLKMD.En_Reset = 1;//打开外部复位,使PA5为外部PRSTB输入引脚
}
void FPPA0 (void)
{
.ADJUST_IC SYSCLK=IHRC/16, IHRC=16MHz, VDD=5V;
PA5_Reset();
while (1)
{
nop;
}
}
void Interrupt (void)
{
pushaf;
if (Intrq.T16)
{ // T16 Trig
// User can add code
Intrq.T16 = 0;
//...
}
popaf;
}
PA5 拉低就会出发系统复位,例子很简单 可以直接仿真测试。
值得注意的是,设置PADIER = 0b0010_0000;//开启数字输入使能,要注意不要影响其他已经设置好的io接口,这个例子没体现出来,如果是真是案例,需要注意的问题,我就经历过。