📄 main.c
字号:
/****************************************************************************
【文 件 名 称】Main.c
【功 能 描 述】FS2410XP教学平台实验程序
【程 序 版 本】3.0
【创建及创建日期】优龙公司/2005-XX-XX
【修改及修改日期】2005-5-23
****************************************************************************/
//头文件定义
#include "def.h"
#include "2410addr.h"
#include "config.h"
#include "board.h"
#define WATCH_ENABLE
#define WDT_ENABLE (0x01<<5)
#define WDT_INT_ENABLE (0x01<<2)
#define WDT_RST_ENABLE (0x01<<0)
#define WDT_CLK_SEL (0X3 <<3) /* 1/128 */
#define WDT_PRE_SCALER (0XFF <<8) /* 255 */
volatile unsigned int sec_tick;
/********************************************************************
Function name: Rtc_Init
Parameter : void
Description : 实时时钟初始化程序
Return : void
Argument : 设置当前时钟
Autor & date :
*********************************************************************/
void rtc_tick_init( char tick )
{
rRTCCON = 0x01;
rTICNT = (tick&0x7f)|0x80; /*TICK 中断使能,周期为(1+tick)/128秒*/
rRTCCON = 0x00;
}
/********************************************************************
Function name: rtc_tick_isr
Parameter : void
Description : Tick中断处理程序
Return : void
Argument : 时钟滴答1秒中断
Autor & date :
*********************************************************************/
void __irq rtc_tick_isr(void)
{
ClearPending(BIT_TICK); /*清除时钟滴答中断标志 */
if((sec_tick%5)==0) /* 修改该语句检查复位情况,if((led_index%3)==0) */
{
rWTCNT = 0x1000; /* 重新设置看门狗时间值 */
}
printf("into tick \n");
sec_tick++;
}
/********************************************************************
Function name: Main
Parameter : void
Description : 主功能函数
Return : void
Argument : void
Autor & date :
*********************************************************************/
void Main(void)
{
BoardInitStart(); //系统初始化,MMU初始化
SystemClockInit(); //系统时钟初始化
MemCfgInit(); //设置NAND FLASH的配置寄存器
PortInit(); //S3C2410X的GPIO初始化
SerialSwitch(0); //选择串口0
SerialChgBaud(115200); //波特率115200
EnableInt();
rINTMOD=0x00; //设置中断为IRQ中断
rtc_tick_init(127);
pISR_TICK=(unsigned)rtc_tick_isr; //安装时间滴答时钟中断
ClearPending(BIT_TICK);
EnableIrq(BIT_TICK); //使能时钟滴答中断
printf("S3C2410X WatchDog Test\n");
rWTCNT = 0x1000;
rWTCON = WDT_ENABLE | WDT_RST_ENABLE | WDT_CLK_SEL | WDT_PRE_SCALER;
while( 1 );
}
/***********************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -