[资料分享] DSP TMS320C5509A之定时器TIMER

Aguilera   2019-9-10 21:30 楼主

定时器是用于控制ADC的采样频率的,需要配合看

代码如下:

#include <csl.h>
#include <csl_irq.h>
#include <csl_timer.h>
#include <stdio.h.>
#define TIMER_TCR_CTRL    TIMER_TCR_RMK(\
    TIMER_TCR_IDLEEN_DISABLE,                /*禁止进入IDLE状态*/                        \
    TIMER_TCR_FUNC_OF(1),                    /*TIN/TOUT为定时器输出*/                    \
    TIMER_TCR_TLB_RESET,                    /*将PRD,TDDR分别复制到TIM、PSC中*/            \
    TIMER_TCR_SOFT_DEFAULT,                    /**/                                        \
    TIMER_TCR_FREE_DEFAULT,                                                                \
    TIMER_TCR_PWID_OF(0),                    /*脉冲宽度为1个CPU时钟周期*/                \
    TIMER_TCR_ARB_RESET,                    /*计算结束后,PRD、TDDR自动装入TIM和PSC*/    \
    TIMER_TCR_TSS_STOP,                        /*启动定时器*/                                \
    TIMER_TCR_CP_CLOCK,                        /*输出时钟占空比为50%*/                        \
    TIMER_TCR_POLAR_DEFAULT,                /*时钟输出极性低电平*/                        \
    TIMER_TCR_DATOUT_DEFAULT                                                            \
)
 
//extern void VECSTART(void);
 
TIMER_Config timCfg0 = {
    TIMER_TCR_CTRL,
    1599,                    //PRD = 1599        //采样率为62.5kHz
    0x00                    //TDDR = 0
};
 
 
//初始化定时器0,用于给ADC提供采样时钟
void IniTimer0(void)
{
    TIMER_Handle hTimer0;
 
    hTimer0 = TIMER_open(TIMER_DEV0,0); 
 
    TIMER_config(hTimer0,&timCfg0);
    
    TIMER_start(hTimer0);                    //启动定时器
}

由于主频设置为200MHz,定时器Timer的时钟为CPU主频的一半,只需要更改PRD分频系数的值,

就可以改变定时器的时钟,假如设置为1599,200MHz/2/(1599+1)=62.5KHz

定时器的头文件如下:

#include <stdio.h>
#ifndef __TIMER1_H__
#define __TIMER1_H__
extern Uint16 TimerRdy;  
//extern void IniTimer1(void);
#endif
 

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复