1. 导入Easy5509开发板的例程EX02_TIME,5509有2个16位的定时器,有点少啊

2. 直接编译,提示找不到CSL.h,其实我也好奇,CSL库是从哪里来的?RTS库从哪里来的?头文件在哪里?上个实验的时候,我发现CSL有个安装包,去官网找了一下安装包http://www.ti.com/tool/sprc133

3. 安装CSL库,在CCS中增加头文件搜索路径,程序编译通过。

4. 看下主程序,主程序比较简单,有几个关键点,包含的库文件

 #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(), /* FUNC == 0 */ \
TIMER_TCR_TLB_RESET, /* TLB == 1 */ \
TIMER_TCR_SOFT_BRKPTNOW, /* SOFT == 0 */ \
TIMER_TCR_FREE_WITHSOFT, /* FREE == 0 */ \
TIMER_TCR_PWID_OF(), /* 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 */ \
) TIMER_Config timCfg0 = {
TIMER_CTRL, /* TCR0 */
0x3400u, /* PRD0 */
0x0000 /* PRSC */
}; Uint16 eventId0; TIMER_Handle mhTimer0; volatile Uint16 timer0_cnt = ; /* Function/ISR prototypes */
interrupt void timer0Isr(void);
void taskFxn(void); int old_intm;
Uint16 tim_val;
Uint16 xfchange = ;
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,重新定义中断向量表*/
IRQ_setVecs((Uint32)(&VECSTART)); /* 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 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,&timer0Isr); /* Write configuration structure values to Timer control regs */
/*设置定时器0的控制与周期寄存器*/
TIMER_config(mhTimer0, &timCfg0); /* Enable Timer interrupt */
/*使能定时器的中断*/
IRQ_enable(eventId0); /* Enable all maskable interrupts */
/*设置寄存器ST1的INTM位,使能所有的中断*/
IRQ_globalEnable(); /* Start Timer */
/*启动定时器0*/
TIMER_start(mhTimer0); //以下是原来的TIMER子段
f=;
ms=;
for(;;)
{
// Wait for at least 10 timer periods
//等待10个定时周期
if(xfchange == )
{
//点亮XF的LED
CHIP_FSET(ST1_55,XF,);
}
else
{
//关掉XF的LED
CHIP_FSET(ST1_55,XF,);
}
}
/* Restore old value of INTM */
/*恢复INTM旧的值*/
IRQ_globalRestore(old_intm); /* We are through with timer, so close it */
/*关掉定时器0*/
TIMER_close(mhTimer0);
}

5. 中断服务函数

 interrupt void timer0Isr(void)
{
ms++;
++timer0_cnt;
if(timer0_cnt == f)
{
xfchange = ;
f=f-;
if(f==)
f=;
}
if(timer0_cnt == *f)
{
timer0_cnt = ;
xfchange = ;
f=f-;
if(f==)
f=;
}
}

DSP5509的定时器实验-第2篇的更多相关文章

  1. DSP5509的RTC实验-第3篇

    1. RTC实时时钟,不在过多介绍,本例程直接调用芯片支持库CSL的库函数,用起来比较简单 main() { CSL_init(); printf ("\nTESTING...\n" ...

  2. DSP5509的XF实验-第一篇

    1. 使用大道科技的EASY-DSP5509开发板,测试第一个例程,DSP_easy5509\Code-Easy5509\EX01_XF\XF 2. 直接编译,报出错误,在Problems窗口错误指示 ...

  3. 【iCore1S 双核心板_ARM】例程七:通用定时器实验——定时点亮LED

    实验原理: 通过STM32的三个GPIO口来驱动LED灯的三个通道:设定GPIO为推挽 输出模式,采用灌电流的方式与LED连接,输出高电平LED灭,输出低电平 LED亮,通过通用定时器TIM3实现50 ...

  4. 【iCore3 双核心板】例程五:SYSTICK定时器实验——定时点亮LED

    实验指导书及代码包下载: http://pan.baidu.com/s/1eQsKcEY iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  5. 【iCore3 双核心板】例程十二:通用定时器实验——定时点亮LED

    实验指导书及代码包下载: http://pan.baidu.com/s/1kTWAAJ9 iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...

  6. 【GMT43智能液晶模块】例程十一:通用定时器实验——定时点亮LED

    实验原理: 通过STM32的一个GPIO口来驱动LED灯,设定GPIO为推挽输出模式,采用灌电流的方式与LED连接, 输出高电平LED灭,输出低电平LED亮,通过通用定时器TIM3实现500ms定时, ...

  7. 【iCore4 双核心板_ARM】例程五:SYSTICK定时器 实验——定时点亮LED

    实验原理: 通过STM32的三个GPIO口驱动三色LED的三个通道,设定GPIO为推挽输出模式,采 用灌电流方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过系统定时器实现 1s定时,每秒 ...

  8. 【iCore4 双核心板_ARM】例程十二:通用定时器实验——定时点亮LED

    实验原理: 通过STM32的三个GPIO口来驱动LED灯的三个通道,设定GPIO为推挽输出模式,采 用灌电流的方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过通用定时器TIM3 实现50 ...

  9. 【iCore1S 双核心板_ARM】例程十:SYSTICK定时器实验——定时点亮LED

    实验原理: 通过STM32的三个GPIO口驱动三色LED的三个通道,设定GPIO为推挽输出,采用 灌电流的方式与LED连接,输出高电平LED灭,输出低电平LED亮,通过系统定时器实现 1s定时,每秒变 ...

随机推荐

  1. 在WAS下找不到主机名称的问题

    发生错误: 联合 ADMU0036E: Deployment Manager 不能根据名称主机 cdzfwas2 在地址 127.0.0.1 查找           期间发生错误:正在回滚到原始配置 ...

  2. 关于Tomcat服务器接收到的请求参数乱码的问题

    我们在编写的Controller 等服务器端的代码时,接受到的请求参数经常会乱码. 解决:在Tomcat 的安装目录下找到conf 文件夹下的server.xml文件用记事本打开. 找到 <Co ...

  3. 【UVA11806 Cheerleaders】 题解

    题目链接:https://www.luogu.org/problemnew/show/UVA11806 容斥原理+组合数 正着找合♂fa的不好找,那就用总方案数-不合♂fa的 #include < ...

  4. phpstudy 出现You don't have permission to access / on this server.

    You don't have permission to access / on this server. 去掉vhost文件中的Options FollowSymLinks ExecCGI 第一次发 ...

  5. Using Lookup Tables to Accelerate Color Transformations

    转自:http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter24.html In feature-film visual-effects ...

  6. NSString,NSData,NSFileManager常用方法

    一.利用NSString类进行文件路径的处理 文件路径格式: NSString *path=@"/Uesrs/apple/testfile.txt" 常用方法汇总: 1.获得组成此 ...

  7. 内网最小化安装CentOS后,想安装ISO文件中的包怎么办呢?

    昨日公司测试人员需要升级公司服务器Python,发现公司服务器上缺失了各种各样的包.比如open-ssl,python-deve等 1.查看你的Centos版本 lsb_release -a 2.上传 ...

  8. 使用WIn10自带的Linux子系统

    最近一直有安装虚拟机的想法,今天刚刚知道win10有自带的Linux子系统,就准备试一下: 首先要保证自己的电脑处于开发者选项: 然后就要在控制面板的程序和功能页面点击“启用或者关闭WIndows功能 ...

  9. obfuscator-llvm Theos 集成配置

    之前我写过一篇文章是关于在 Xcode 里怎么集成配置 obfuscator-llvmobfuscator-llvm Xcode集成配置 有些情况下我们使用 Theos 开发 tweak,需要将 ob ...

  10. 详解 Python3 正则表达式(一)

    本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些批注和修改 ^_^ 正则表达式介绍 正则表达式(Regular expressio ...