dsp实验:定时器答题.doc
文本预览下载声明
实验三:定时器
实验原理
1.定时器的结构
定时器中断周期
3.实验功能:通过XF管脚控制LED闪动以一定规律进行闪烁。
硬件资源及在片外围电路
硬件资源:
DSP芯片、CPU、LED、蜂鸣器、电阻、电容等
在片外围电路:
时钟发生器、定时器、通用输入/输出口等
参数设置
CPU工作时钟: *clkmd =0x21b3;
0010000110110011
CLKOUT=18M
中断频率: 9 /* PRSC 4bit*/
18M/9000=2KHZ
实验流程图
程序
#include stdio.h
#include csl.h
#include csl_irq.h
#include csl_timer.h
#include csl_chiphal.h
extern void VECSTART(void);
#define TIMER_CTRL TIMER_TCR_RMK(
TIMER_TCR_IDLEEN_DEFAULT, /* IDLEEN == 0 */
TIMER_TCR_FUNC_OF(0), /* FUNC == 0 */
TIMER_TCR_TLB_RESET, /* TLB == 1 */
TIMER_TCR_SOFT_BRKPTNOW, /* SOFT == 0 */
TIMER_TCR_FREE_WITHSOFT, /* FREE == 0 */
TIMER_TCR_PWID_OF(0), /* PWID == 0 */
TIMER_TCR_ARB_RESET, /* ARB == 1 */
TIMER_TCR_TSS_START, /* TSS == 0 */
TIMER_TCR_CP_PULSE, /* CP == 0 */
TIMER_TCR_POLAR_LOW, /* POLAR == 0 */
TIMER_TCR_DATOUT_0 /* DATOUT == 0 */
)
/* Create a TIMER configuration structure that can be passed */
/* to TIMER_config CSL function for initialization of Timer */
/* control registers. */
TIMER_Config timCfg0 = {
TIMER_CTRL, /* TCR0 */
// 0x3400u, /* PRD0 0x3400=13312*/
14400, /* PRD0 16bit 0x3400=144000=14400*10*/
9 /* PRSC 4bit*/
}; //中断频率=Fcpu/(9000*1)=144MHz/13312=1kHz
Uint16 eventId0;
/* Create a TIMER_Handle object for use with TIMER_open */
TIMER_Handle mhTimer0;
volatile Uint16 timer0_cnt = 0;
/* Function/ISR prototypes */
interrupt void timer0Isr(void);
int old_intm;
Uint16 tim_val;
Uint16 xfchange = 0;
Uint16 ms,f;
void main(void)
{
/* Initialize CSL
显示全部