watchdog_conf.c

来自「菜鸟,详细NRF24E1运用,程序,电路」· C语言 代码 · 共 116 行

C
116
字号

#include "reg24le1.h"
#include "watch_dog.h"
#include "intrins.h"

void io_config()
{
CLKCTRL=0X28;
CLKLFCTRL = 0x01; 

P0CON=0X00;//NORMAL
P0DIR=0X00;//OUT
LED=0;

}

void uart_init()
{
		// UART	
	P0DIR &= 0xF7;				// P03 (TxD) is output
  	P0DIR |= 0x10;     			// P04 (RxD) is input 
	P0|=0x18;	 
		
	S0CON = 0x50;  
   	PCON |= 0x80; 				// SMOD = 1
  	WDCON |= 0x80;   			// Select internal baud rate generator 
	 	
    S0RELL = 0xF3;         // BAUD_38K4
  	S0RELH = 0x03;		  	 
  	//ES0 = 1;


}


void watchdog_init()
{

WDSV=(640%256);
delay(10);
WDSV=(640/256);
puts("\n  the le1 will restart in 5 seconds! \n");

}

void delay(unsigned int x)
{

unsigned char di;
   for(;x>0;x--)
     for(di=175;di>0;di--)
	  {
	   ;
	  }
}


void redrst()
{
unsigned char rst;
rst=RSTREAS;
rst&=0x07; 
send('\n');
switch(rst)
{
  case 0x00:puts("On-chip reset generator!");break;//片上晶振产生复位
  case 0x01:puts("RST pin!");break;//引脚复位
  case 0x02:puts("Watchdog!");break;//狗复位
  case 0x04:puts("Reset from on-chip hardware debugger!");break;//硬件调试软件复位
  case 0x06:puts("first reset by debuger,then by watchdog!");break;
  default :puts("error!");break;
}
RSTREAS=0x00;
}

void send(char ch)
{

 S0BUF=ch;
 while(!TI0);
 TI0=0;
}

void puts(unsigned char* s)
{

 while(*s!='\0')
 send(*s++);

}

void decount()
{
unsigned int wh,wl;
unsigned int time0=5,time1=0;
wl=WDSV;
delay(10);
wh=WDSV;
wl&=0xff;
wh&=0xff;
time1=(wh*256+wl)*256/32768;
/*
if(time1!=time0)
  {
LED=!LED;
time0=time1;
send(time0+'0');
send('\n');
   }
		*/
delay(10000);
LED=!LED;

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?