S3C2440A 具有5 个16 位定时器,每个定时器可以按照中断模式或DMA 模式工作。定时器0,1,2,3 具有PWM 功能。定时器4 是一个内部定时器,不具有对外输出口线。定时器0 还具有死区发生器,通常用于大电流设备。
定时器特性总结如下。
● 5 个16 位定时器可以工作在中断模式或DMA 模式。
● 包括2 个8 位预分频器、2 个4 位分割器。
● 输出波形的占空比可用编程控制(即进行脉宽调制)。
● 具有自动重载模式或单次触发模式。
● 具有死区发生器。
与定时器相关的寄存器有:TCFG0、TCFG1、TCON、TCMPBn、TCNTBn、TCNTOn
定时器的频率由PCLK分频而来,即Ftimer = PCLK / (prescaler+1) / MUX
prescaler位于TCFG0,MUX位于TCFG1
TCON控制定时器的运行:是否自动装载定时器初值,是否手动装载,开始/停止 定时器。
TCNTBn放定时器n的初值,装载用
TCMPBn放定时器n的匹配值,用于调至PWM
TCNTOn,只读,用于观察定时器n的初值
编程方法如下:
定时器初始化()
{
设置预分频器prescaler (TCFG0)
设置MUX (TCFG1)
赋初值TCNTB TCNTB = (PCLK / (prescaler+1) / MUX) * 中断时间间隔(单位秒)
TCON: 手动跟新打开
手动跟新关闭
自动装载(计时器循环计数)
启动定时器
}
中断初始化()
{
清除SRCPNF、INTPND中的相应中断标志位(可以调用ClearPending函数)
填入中断例程地址于中断向量表 pISR_EINTx
使能相应中断 rINTMSK
}
中断例程() __irq
{
……中断程序……
清除SRCPNF、INTPND中的相应中断标志位
}
下面是定时器0试验程序:
//************************************************************************************************
void Main(void)
{
int i;
……硬件初始化……
int_time0_init();
time0_init();
while(1);
}
void int_time0_init(void)
{
Uart_Printf("Timer0中断实验n");
ClearPending(1<<10); //清楚中断标志
pISR_TIMER0=(unsigned)timer0_ISR; //填入中断例程地址于中断向量表
rINTMSK&=~(1<<10); //TIME1开中断
}
void time0_init(void)
{
rTCFG0 = rTCFG0 &(~0xFF) | 175; //设置预分频器prescaler0 = 175
rTCFG1 = rTCFG1 &(~0xF) | 2; //设置MUX0 = 1/8
rTCNTB0 = PCLK/(175+1)/8; //一秒,注意右值别溢出16位
rTCON |= 1<<1; //开启手动更新,将TCNTB0的值载入定时器0
rTCON &= ~(1<<1); //关闭手动更新(必须)
rTCON |= 1<<0 | 1<<3; //开启定时器,自动装载模式
//关于中断时间的设定: TCNTB =(PCLK / (prescaler+1) / MUX) * 中断时间间隔(单位秒)
}
void timer0_ISR(void) __irq
{
n++;
Uart_Printf("Timer0 已经中断 %d 次n",n);
ClearPending(1<<10); //清楚中断标志
}
//***********************************************************************************************************
运行结果如下:
上一篇:LPC1778的IAP编程源码
下一篇:几乎是每个arm程序必备的启动代码
推荐阅读最新更新时间:2024-11-19 21:46
设计资源 培训 开发板 精华推荐
- L7808C 0.5 至 10 V 输出稳压器的典型应用
- 使用 ON Semiconductor 的 FSDM07652R 的参考设计
- 用于 24V 汽车应用的 LTC4367HDD-1 过压电源保护控制器的典型应用
- Buzzer
- Surface Dial国产版本
- EVAL-ADUM7643EBZ,用于评估 iCoupler ADuM7641 6 通道数字隔离器的评估板
- DER-815 - 基于InnoSwitch3-CP,可应用智能扬声器和管状电机的45W 24V输出隔离式反激电源
- ADR421 输出微调调整电压基准的典型应用
- 使用 Analog Devices 的 LTC1458LCG 的参考设计
- 音频功放