thmna 发表于 2010-6-5 17:07:49

TMS320F2812如何确定定时器初值问题

,利用GP定时器1在GPIOB5引脚上产生周期为1 s的方波,
// 令一个LED闪烁
//XCLKIN=30MHz, SYSCLKOUT=150MHz
#include "DSP281x_Device.h"
interrupt void eva_timer1_isr(void);
int counter;        //全局变量软件计数器,扩大定时时间
void         EVA_Timer1( )
{
    EvaRegs.GPTCONA.all = 0;        // 初始化 EVA Timer 1
    EvaRegs.T1PR = 0x492;         // 定时周期为1.707us*(T1PR+1)=1ms
    EvaRegs.EVAIMRA.bit.T1PINT = 1;//使能定时器1的周期中断
    EvaRegs.EVAIFRA.bit.T1PINT = 1;   //写1清除定时器1的周期中断标志
    EvaRegs.T1CNT = 0x0000;
    EvaRegs.T1CON.all = 0x1740;       //连续增计数,128分频,打开定时器
}
我想知道定时周期中的1.707us怎么计算来的?

niebinkui 发表于 2010-7-13 16:43:09

是高速外设时钟经过128分频后得出的周期,周期是1.707us高速外设时钟是75MHz,通过高速外设时钟预定标器(HISPCP)可以得到75MHz的高速外设时钟。
T=1/(75MHz/128)=1.707us
页: [1]
查看完整版本: TMS320F2812如何确定定时器初值问题