📄 timer.c
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: Timer.c
** Last modified Date: 2007-09-19
** Last Version: 1.0.0
** Descriptions: S3C2410 TIMER 基础驱动
**
**--------------------------------------------------------------------------------------------------------
** Created by: Hanhui
** Created date: 2007-09-19
** Version: 1.0.0
** Descriptions: S3C2410 TIMER 基础驱动
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
*********************************************************************************************************/
#include "config.h"
#include "Timer.h"
/*********************************************************************************************************
** Function name: timerSetPrescaler0
** Descriptions: 设置定时器0 与 定时器1 的预分频因子
** input parameters: ucPrescaler 新的预分频因子
** output parameters: NONE
** Returned value: NONE
** Created by: Hanhui
** Created Date: 2007/09/18
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void timerSetPrescaler0 (unsigned char ucPrescaler)
{
rTCFG0 &= 0xFFFFFF00;
rTCFG0 |= ucPrescaler;
}
/*********************************************************************************************************
** Function name: timerSetPrescaler1
** Descriptions: 设置定时器2 3 与定时器4 的预分频因子
** input parameters: ucPrescaler 新的预分频因子
** output parameters: NONE
** Returned value: NONE
** Created by: Hanhui
** Created Date: 2007/09/18
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void timerSetPrescaler1 (unsigned char ucPrescaler)
{
rTCFG0 &= 0xFFFF00FF;
rTCFG0 |= (unsigned int)(ucPrescaler << 8);
}
/*********************************************************************************************************
** Function name: timerSetPrescaler
** Descriptions: 设置定时器预分频因子
** input parameters: ucGroup 定时器组,0:定时器0,1 1:定时器 2,3,4
** ucPrescaler 新的预分频因子
** output parameters: NONE
** Returned value: 正确返回 0, 错误返回 -1
** Created by: Hanhui
** Created Date: 2007/09/18
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
int timerSetPrescaler (unsigned char ucGroup, unsigned char ucPrescaler)
{
switch (ucGroup) {
case 0: /* 定时器组 0 */
timerSetPrescaler0(ucPrescaler);
break;
case 1: /* 定时器组 1 */
timerSetPrescaler1(ucPrescaler);
break;
default: /* 定时器组错误 */
return (-1);
}
return (0);
}
/*********************************************************************************************************
** Function name: timerSetDeadZone
** Descriptions: 设置 定时器0 的死区
** input parameters: ucDeadZone 死区大小
** output parameters: NONE
** Returned value: NONE
** Created by: Hanhui
** Created Date: 2007/09/18
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void timerSetDeadZone (unsigned char ucDeadZone)
{
rTCFG0 &= 0xFF00FFFF;
rTCFG0 |= (unsigned int)(ucDeadZone << 16);
}
/*********************************************************************************************************
** Function name: timerSetMuxCnt
** Descriptions: 设置定时器的分频器
** input parameters: ucTimer 定时器
** ucDivider 分频值 0000 = 1/2 0001 = 1/4 0010 = 1/8
** 0011 = 1/16 01xx = External TCLKx
** output parameters: NONE
** Returned value: 正确返回 0, 错误返回 -1
** Created by: Hanhui
** Created Date: 2007/09/18
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
int timerSetMuxCnt (unsigned char ucTimer, unsigned char ucDivider)
{
switch (ucTimer) {
case 0: /* 定时器 0 */
rTCFG1 &= 0xFFFFFFF0;
rTCFG1 |= ucDivider;
break;
case 1: /* 定时器 1 */
rTCFG1 &= 0xFFFFFF0F;
rTCFG1 |= (ucDivider << 4);
break;
case 2: /* 定时器 2 */
rTCFG1 &= 0xFFFFF0FF;
rTCFG1 |= (unsigned int)(ucDivider << 8);
break;
case 3: /* 定时器 3 */
rTCFG1 &= 0xFFFF0FFF;
rTCFG1 |= (unsigned int)(ucDivider << 12);
break;
case 4: /* 定时器 4 */
rTCFG1 &= 0xFFF0FFFF;
rTCFG1 |= (unsigned int)(ucDivider << 16);
break;
default: /* 定时器错误 */
return (-1);
}
return (0);
}
/*********************************************************************************************************
** Function name: timerSetDMA
** Descriptions: 设置定时器的 DMA 链接
** input parameters: 连接DMA的定时器号 为 0 不连接, 1 为 TIMER0 依此类推
** output parameters: NONE
** Returned value: 正确返回 0, 错误返回 -1
** Created by: Hanhui
** Created Date: 2007/09/18
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
int timerSetDMA (unsigned char ucTimer)
{
if (ucTimer > 5) {
return (-1);
}
rTCFG1 &= 0xFF0FFFFF;
rTCFG1 |= (unsigned int)(ucTimer << 20);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -