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

📄 kw_timer.c

📁 linux下数据下载器的设计与实现
💻 C
字号:
/************************************************************************************** 
 Copyright (C), 1988-1999, Xi'an Keyway Control & Measurement Technology Co., Ltd
 FileName: kw_timer.c 
 Description     :nandflash 接口模块。      
 Version         :1.0 
 Function List   :    
 History:         // 历史修改记录 
      <author>      <time>        <version >       <desc> 
      LigangWang    07/08/08       1.0             build this moudle   
*************************************************************************************/

#include "globals.h"

#define TIMER0_COUNT 0x63c0										// 10ms at 24MHz

WORD xdata  timer0_tick;										// 嘀哒数,10ms一周期

/************************************************************************************* 
  Function:       TM_Timer0_Init
  Description:    初始化 Timer 0,启动中断,每10ms中断一次
  Called By:      fw.c / main()
  Input:          N/A
  Output:         N/A
  Return:         void
  Others:         
*************************************************************************************/
void TM_Timer0_Init (void)
{
	EA = 0; 													// 关闭中断
	TR0 = 0;                									// 进制timer0
                                	
	CKCON = 0x03;												// Timer 0 使用 CLK24/12
	TMOD &= ~0x0F;												// 清除 timer0 mod位
	TMOD |= 0x01;                   							// 设置T imer 0 为16位模式

	TL0 = (TIMER0_COUNT & 0x00FF); 	 							// 装载计数值
	TH0 = (TIMER0_COUNT >> 8);

	PT0 = 0;													// 设置中断触发方式
	ET0 = 1;													// 允许 Timer 0 中断
	TR0 = 1;                       								// 启动 Timer 0
	EA =  1;													// 开中断
	timer0_tick = 0;
}

/************************************************************************************* 
  Function:       TM_Timer0
  Description:    Timer 0中断服务程序,嘀哒数 timer0_tick 加1,并重新装载计数初值
  Called By:      ...
  Input:          N/A
  Output:         N/A
  Return:         void
  Others:         
*************************************************************************************/
void TM_Timer0 (void) interrupt 1 using 1       			
{
	TR0 = 0;       				       							// 停止计数
	timer0_tick++;												// 嘀哒加1
	TL0 = TL0 + (TIMER0_COUNT & 0x00FF);						// 重新装载初值
	TH0 = TH0 + (TIMER0_COUNT >> 8);
	TR0 = 1;													// 启动计数
}

/************************************************************************************* 
  Function:       TM_ClearWTD
  Description:    清除看门狗信号,该函数必须在1.5s周期内运行
  Called By:      ...
  Input:          N/A
  Output:         N/A
  Return:         void
  Others:         
*************************************************************************************/
void TM_ClearWTD()
{
	if((IOE & (1 << 1)) == 0)
		IOE |= (1 << 1);											//置IOE.1为高电平
	else
		IOE &= (~(1 << 1));											//清除,设为0
}

/************************************************************************************* 
  Function:       TM_InitWTD
  Description:    初始化看门狗
  Called By:      ...
  Input:          N/A
  Output:         N/A
  Return:         void
  Others:         
*************************************************************************************/
void TM_InitWTD()
{
	return ;
}



⌨️ 快捷键说明

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