/*********************************************************************************************************
定时器配置参数
*********************************************************************************************************/
#define TIMER_ENABLE (1 << 0) /* 启动定时器 */
#define TIMER_DISABLE (0 << 0) /* 停止定时器 */
#define TIMER_MANUAL_UPDATE (1 << 1) /* 定时器手动重载 */
#define TIMER_UNMANUAL_UPDATE (0 << 1) /* 定时器自动重载 */
#define TIMER_INVERTER (1 << 2) /* 定时器输出翻转 */
#define TIMER_UNINVERTER (0 << 2) /* 定时器输出不翻转 */
#define TIMER_RELOAD (1 << 3) /* 循环计数 */
#define TIMER_UNRELOAD (0 << 3) /* 单次计数 */
#define TIMER_DEADZONE (1 << 4) /* 定时器0使用死区 */
#define TIMER_UNDEAD_ZONE (0 << 4) /* 定时器0不使用死区 */
基本操作函数:
/*********************************************************************************************************
** 函数名称: s3c24xxTimerSetPrescaler0
** 功能描述: 设置定时器0 与 定时器1 的预分频因子
** 输 入: ucPrescaler 新的预分频因子
** 输 出: NONE
** 返 回: NONE
*********************************************************************************************************/
void s3c24xxTimerSetPrescaler0 (unsigned char ucPrescaler)
{
rTCFG0 &= 0xFFFFFF00;
rTCFG0 |= ucPrescaler;
}
/*********************************************************************************************************
** 函数名称: s3c24xxTimerSetPrescaler1
** 功能描述: 设置定时器2 3 与定时器4 的预分频因子
** 输 入: ucPrescaler 新的预分频因子
** 输 出: NONE
** 返 回: NONE
*********************************************************************************************************/
void s3c24xxTimerSetPrescaler1 (unsigned char ucPrescaler)
{
rTCFG0 &= 0xFFFF00FF;
rTCFG0 |= (unsigned int)(ucPrescaler << 8);
}
/*********************************************************************************************************
** 函数名称: s3c24xxTimerSetPrescaler
** 功能描述: 设置定时器2 3 与定时器4 的预分频因子
** 输 入: ucGroup 定时器组,0:定时器0,1 1:定时器 2,3,4
** ucPrescaler 新的预分频因子
** 输 出: NONE
** 返 回: 0 正确
** -1 错误
*********************************************************************************************************/
int s3c24xxTimerSetPrescaler (unsigned char ucGroup, unsigned char ucPrescaler)
{
switch (ucGroup) {
case 0: /* 定时器组 0 */
s3c24xxTimerSetPrescaler0(ucPrescaler);
break;
case 1: /* 定时器组 1 */
s3c24xxTimerSetPrescaler1(ucPrescaler);
break;
default: /* 定时器组错误 */
return (-1);
}
return (0);
}
/*********************************************************************************************************
** 函数名称: s3c24xxTimerSetDeadZone
** 功能描述: 设置 定时器0 的死区
** 输 入: ucDeadZone 死区大小
** 输 出: NONE
** 返 回: NONE
*********************************************************************************************************/
void s3c24xxTimerSetDeadZone (unsigned char