定时器是用于控制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