接口功能介绍
ADSP-BF51x 上有3 个通用定时器,每个定时器有三种模式:
1. 脉冲宽度调制模式(PWM_OUT)
2. 脉冲宽度计数捕获模式(WDTH_CAP)
3. 外部事件模式(EXT_CLK)
接口寄存器说明
TIMERx_CONFIG :定时器配置寄存器,用于设置定时器工作模式
TIMERx_WIDTH :定时器宽度寄存器,设置输出波形脉冲宽度
TIMERx_PERIOD :定时器周期寄存器,设置输出波形的周期
TIMERx_COUNTER :定时器计数寄存器,读取捕获的脉冲数量
TIMER_ENABLE :定时器使能寄存器
TIMER_DISABLE :定时器关闭寄存器
TIMER_STATUS :定时器状态寄存器
例子代码分析
*pTIMER0_CONFIG = 0x0019; //配置定时器为PWM 模式
*pTIMER0_PERIOD = 0x00800000; //设置周期为0x00800000 个系统时钟
*pTIMER0_WIDTH = 0x00400000; //设置脉宽为0x00400000 个系统时钟
*pTIMER_ENABLE = 0x0001; //使能Timer0
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xffffffff;
*pSIC_IAR2 = 0xfffffff5; //配置中断等级数据为4
register_handler(ik_ivg12, TIMER0_ISR); //注册中断等级为12,标识符为TIMER0_ISR
*pSIC_IMASK1 = 0x00000001; //开启中断
EX_INTERRUPT_HANDLER(TIMER0_ISR) //标识符为TIMER0_ISR 的中断函数
{
*pTIMER_STATUS = 0x0001; //清除定时器中断标志
printf("timer0 interrupt !\n"); //打印信息
}