DrvSYS_SelectBODVolt(2); 设置检测电压
DrvSYS_SetBODFunction (1, 1, NULL);使能欠压检测, 两个函数配合使用
单用DrvSYS_SetBODFunction (1, 1, NULL);时电压低于4.5V产生复位
DrvSYS_ResetChip();这个函数也产生复位了,P42口LED灯不在闪烁
以上库函数需用DrvSYS_UnlockProtectedReg ( )函数解锁合才生效
设定完后记得上锁用这个DrvSYS_LockProtectedReg ( )*/
哈哈见笑了,小学生水平~~~~~~正在学习中
#include "DrvGPIO.h"
#include "DrvSYS.h"
void delay(unsigned int x)
{
unsigned int z,y;
for(z=x;z>0;z--)
for(y=1000;y>0;y--);
}
void Init_System()
{
while(DrvSYS_UnlockProtectedReg ( )!= 0); //解锁被保护的寄存器,判断是否成功
DrvSYS_SelectBODVolt(2);// 选择Brown-Out门限电压为3.8V
DrvSYS_SetBODFunction (1, 1, NULL);// 使能欠压检测,使能Brown-Out复位功能,Brown-Out的回调函数为空
//DrvSYS_EnableBODLowPowerMode ( );// 使能Brow-out检测器low power模式
while(DrvSYS_LockProtectedReg ( )!= 0);// 被保护的寄存器重新上锁,判断是否成功
}
int main(void)
{
uint8_t sd=0,we=0,hj=0,XT=0;
PORT0->DOUT=0XAAAA; //流水灯端口输出
Init_System();
while(1)
{
_PORT_DOUT (4, 1) = 1;
delay(400);
_PORT_DOUT (4, 1) = 0;
delay(400);
sd++;
if(sd==5)
{
sd=0;
if(we==8)hj=1;
if(we==0)hj=0;
if(hj==0)
{
_PORT_DOUT (0,we++) = 0;
XT=we-1;
delay(800);
_PORT_DOUT (0,XT)=1;
}
if(hj==1)
{
_PORT_DOUT(0, we--) = 0;
XT=we+1;
delay(800);
_PORT_DOUT(0,XT)=1;
}
}
//while(DrvSYS_UnlockProtectedReg ( )!= 0);
//DrvSYS_ResetChip();// 复位整个芯片
{
uint8_t timer=10;
while(1)
{
while(timer--)//如果没有产生复位,P42口灯闪
{
_PORT_DOUT (4, 2) = 1;
delay(400);
_PORT_DOUT (4, 2) = 0;
delay(400);
}
timer=10;
}
}
}
}
如果取消欠压保护 M058在2.2V可以工作
向地址0x50000100依次写入59h,16h,88h 同样可以解锁