📄 main.c
字号:
/*=============================================================================
--------------------------------- Copy Left -----------------------------------
Illidan Fly's Project
Power by BigFly Network
http://bigfly.happybobby.com
Released under GPL2 License
----------------------------- File Description --------------------------------
Filename: main.c
Date: 2007.01.03
Version: 0.0.1
Description:
----------------------------- Version History ---------------------------------
0.0.1: First release
=============================================================================*/
#include "2410addr.h"
#include "target.h"
#include "2410lib.h"
void __irq isr_wdt(void)
{
rINTMSK = rINTMSK | BIT_WDT;
Uart_Printf("You havn't press any key in 10 seconds.\n");
// 清除中断位
rINTPND = BIT_WDT;
rSRCPND = BIT_WDT;
rINTMSK = rINTMSK & ~BIT_WDT;
}
void main(void)
{
int fc1=0;
char tmpchar;
Uart_Printf("CITK2410 WDT demo.\n");
// Init target board (call this function before anything can go!)
Target_Init();
// 初始化 WDT 控制器
// WDT 时钟频率计算方法:
// WDT时钟频率=(PCLK/(分频因子+1))/除数因子
// 在本例子里,PCLK=50.7MHz,要使 WDT 在10秒倒数完毕,则:
// 设置分频因子为49,除数因子为128,可得WDT时钟频率为7921.875
// 所以,WTDAT的初始值为7921.875*10=79219
rWTCON = (49<<8) | (0<<5) | (3<<3) | (1<<2) | (0);
rWTDAT = 79219;
rWTCNT = rWTDAT;
// 设置 WDT 中断服务程序
pISR_WDT = (unsigned int)isr_wdt;
// 打开 WDT 中断
rINTMSK = rINTMSK & ~BIT_WDT;
Uart_Printf("Select WDT Test method, Press:\n1 for WDT interrupt.\n2 for WDT reset.\n");
tmpchar = Uart_Getch();
if(tmpchar=='1')
{
rWTCON = (49<<8) | (1<<5) | (3<<3) | (1<<2) | (0);
}
else if(tmpchar=='2')
{
rWTCON = (49<<8) | (1<<5) | (3<<3) | (0<<2) | (1);
}
else
{
Uart_Printf("Invalid selection. System will now reset.\n");
rWTDAT = 1;
rWTCON = (0<<8) | (1<<5) | (0<<3) | (1<<2) | (1);
while(1){;}
}
while(1)
{
Uart_Printf("Times:%d Press any key in 10 seconds.\n",fc1++);
tmpchar = Uart_Getch();
// 喂狗
rWTCNT = rWTDAT;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -