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

📄 main.c

📁 ARM9的S3C2410的实验源码
💻 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 + -