收藏 分享(赏)

dsp实验:定时器.doc

上传人:精品资料 文档编号:10724178 上传时间:2020-01-02 格式:DOC 页数:8 大小:97.50KB
下载 相关 举报
dsp实验:定时器.doc_第1页
第1页 / 共8页
dsp实验:定时器.doc_第2页
第2页 / 共8页
dsp实验:定时器.doc_第3页
第3页 / 共8页
dsp实验:定时器.doc_第4页
第4页 / 共8页
dsp实验:定时器.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、实验三:定时器1、实验原理1.定时器的结构2.定时器中断周期3.实验功能:通过 XF 管脚控制 LED 闪动以一定规律进行闪烁。2、硬件资源及在片外围电路硬件资源:DSP 芯片、CPU、 LED、蜂鸣器、电阻、电容等在片外围电路:时钟发生器、定时器、通用输入/输出口等3、参数设置CPU 工作时钟: *clkmd =0x21b3;0010000110110011CLKOUT=18M中断频率: 9 /* PRSC 4bit*/18M/9000=2KHZ4、实验流程图5、程序#include #include #include #include #include extern void VECSTA

2、RT(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, /* AR

3、B = 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. */T

4、IMER_Config timCfg0 = TIMER_CTRL, /* TCR0 */ 0x3400u, /* PRD0 0x3400=13312*/14400, /* PRD0 16bit 0x3400=144000=14400*10*/9 /* PRSC 4bit*/; /中断频率=Fcpu/(9000*1)=144MHz/13312=1kHzUint16 eventId0; /* Create a TIMER_Handle object for use with TIMER_open */TIMER_Handle mhTimer0;volatile Uint16 timer0_cnt

5、= 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 library - This is REQUIRED ! */*CLS 库的初始化,这是必需的*/CSL_init();/* Set IVPH/IVPD to start of interrupt vector table */*修改寄存器 IVPH, IVPD,重新定义中断向量表*/

6、 IRQ_setVecs(Uint32)( /* Temporarily disable all maskable interrupts */*禁止所有可屏蔽的中断源*/old_intm = IRQ_globalDisable(); /* Open Timer 0, set registers to power on defaults */*打开定时器 0,设置其为上电的的默认值,并返回其句柄*/mhTimer0 = TIMER_open(TIMER_DEV0, TIMER_OPEN_RESET);/* Get Event Id associated with Timer 0, for use

7、 with */* CSL interrupt enable functions. */*获取定时器 0 的中断 ID 号*/ eventId0 = TIMER_getEventId(mhTimer0);/* Clear any pending Timer interrupts */*清除定时器 0 的中断状态位*/IRQ_clear(eventId0);/* Place interrupt service routine address at */* associated vector location */*为定时器 0 设置中断服务程序*/IRQ_plug(eventId0,/* Wri

8、te configuration structure values to Timer control regs */*设置定时器 0 的控制与周期寄存器*/ TIMER_config(mhTimer0, /* Enable Timer interrupt */*使能定时器的中断*/IRQ_enable(eventId0); /* Enable all maskable interrupts */*设置寄存器 ST1 的 INTM 位,使能所有的中断*/IRQ_globalEnable(); /* Start Timer */*启动定时器 0*/TIMER_start(mhTimer0);ms=

9、0;for(;)/ Wait for at least 10 timer periods/等待 10 个定时周期if(xfchange = 0) /点亮 XF 的 LEDCHIP_FSET(ST1_55,XF,1); else/关掉 XF 的 LEDCHIP_FSET(ST1_55,XF,0); /* Restore old value of INTM */*恢复 INTM 旧的值*/IRQ_globalRestore(old_intm);/* We are through with timer, so close it */*关掉定时器 0*/TIMER_close(mhTimer0); /*定时器 0 的中断程序*/interrupt void timer0Isr(void)ms+;+timer0_cnt;if(timer0_cnt = 500)xfchange = 1;if(timer0_cnt = 1000)timer0_cnt = 0;xfchange = 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报