⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 优龙FS2410板的看门狗定时器源码
💻 C
字号:
#include "def.h"
#include "option.h"
#include "2410addr.h"
#include "2410lib.h"
#include "2410slib.h"
#include "timer.h"
#include "mmu.h"
#define FCLK 200000000
#define HCLK (FCLK/2)
#define PCLK (HCLK/2)
#define UCLK 48000000
#define U32  unsigned int
U32	Console_Uart = 0;
U32	Console_Baud = 115200;
void Isr_Init(void);
void rtc_tick_init (char tick);
void __irq rtc_tick_isr (void);
#define WDT_CLK_SEL (0X3 <<3) /* 1/128 */
#define WDT_PRE_SCALER (0XFF <<8) /* 255 */
unsigned int sec_tick=0;
void Main(void)
{        MMU_Init();
	SetClockDivider(1, 1);
	SetSysFclk(DFT_FCLK_VAL);       
	Port_Init();
	Isr_Init();
	Uart_Select(Console_Uart);
	Uart_Init(0, Console_Baud);
	
	rINTMOD=0x00; //设置中断为IRQ 中断
	rtc_tick_init (127);
	pISR_TICK=(unsigned)rtc_tick_isr; //安装时间滴答时钟中断
	ClearPending (BIT_TICK);
	EnableIrq(BIT_TICK); //使能时钟滴答中断
	printf ("S3C2410 WatchDog Test\n");
	rWTCNT = 0x1000;
	rWTCON = 1 |(1<<5) | WDT_CLK_SEL |WDT_PRE_SCALER;  //开启WatchDog
	while (1);
 }
 
 
 void rtc_tick_init (char tick)
{
rRTCCON = 0x01;
rTICNT = (tick&0x7f)|0x80; /*TICK 中断使能,周期为(1+tick)/128 秒*/
rRTCCON = 0x00;
}

void __irq rtc_tick_isr (void)
{
ClearPending(BIT_TICK); /*清除时钟滴答中断标志 */
if((sec_tick%3)==0) //取值<3则不会复位,取值>=3则过3秒复位
{
rWTCNT = 0x1000; /* 重新设置看门狗时间值 */
}
printf ("into tick \n");
printf("%d\n",sec_tick);
sec_tick++;
}
 
 
 
 
 void Isr_Init(void)
{
  //  pISR_UNDEF  = (U32)HaltUndef;
    //pISR_SWI    = (U32)HaltSwi;
    //pISR_PABORT = (U32)HaltPabort;
    //pISR_DABORT = (U32)HaltDabort;
    rINTMOD = 0x0;	  // All=IRQ mode
    rINTMSK = BIT_ALLMSK;	  // All interrupt is masked.        
}

⌨️ 快捷键说明

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