dsp实验:定时器_第1页
dsp实验:定时器_第2页
dsp实验:定时器_第3页
dsp实验:定时器_第4页
dsp实验:定时器_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、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_FRE

3、E_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 pass

4、ed */* 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=1kHzUint16 eventId0; /* Create a TIME

5、R_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 library - This is REQUIRED ! */ /*CLS库的初始化,这是必需的*/

6、CSL_init(); /* Set IVPH/IVPD to start of interrupt vector table */ /*修改寄存器IVPH,IVPD,重新定义中断向量表*/ IRQ_setVecs(Uint32)(&VECSTART); /* Temporarily disable all maskable interrupts */*禁止所有可屏蔽的中断源*/old_intm = IRQ_globalDisable(); /* Open Timer 0, set registers to power on defaults */*打开定时器0,设置其为上电的的默认值

7、,并返回其句柄*/mhTimer0 = TIMER_open(TIMER_DEV0, TIMER_OPEN_RESET);/* Get Event Id associated with Timer 0, for use with */* CSL interrupt enable functions. */*获取定时器0的中断ID号*/ eventId0 = TIMER_getEventId(mhTimer0);/* Clear any pending Timer interrupts */*清除定时器0的中断状态位*/IRQ_clear(eventId0);/* Place interrupt

8、 service routine address at */* associated vector location */*为定时器0设置中断服务程序*/IRQ_plug(eventId0,&timer0Isr);/* Write configuration structure values to Timer control regs */*设置定时器0的控制与周期寄存器*/ TIMER_config(mhTimer0, &timCfg0); /* Enable Timer interrupt */*使能定时器的中断*/IRQ_enable(eventId0); /* Enab

9、le all maskable interrupts */*设置寄存器ST1的INTM位,使能所有的中断*/IRQ_globalEnable(); /* Start Timer */*启动定时器0*/TIMER_start(mhTimer0);ms=0;for(;)/ Wait for at least 10 timer periods /等待10个定时周期if(xfchange = 0) /点亮XF的LED CHIP_FSET(ST1_55,XF,1); else/关掉XF的LED CHIP_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); /

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论