MSP-EXP430F5529LP开发板003-定时器库函数

2020-02-12来源: eefocus关键字:MSP-EXP430F5529LP  开发板  定时器库函数

430的定时器的有点类似于51单片机,利用定时器实现P1.0口LED灯1s闪烁代码如下


#include "wdt_a.h"

#include "gpio.h"

#include "timer_a.h"

#define COMPARE_VALUE 32768

int main( void )

{

  volatile unsigned int i;

  WDT_A_hold(WDT_A_BASE);

  

  GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);

  GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);

  

   //Start timer in continuous mode sourced by ACLK

  Timer_A_initContinuousModeParam initContParam = {0};

  initContParam.clockSource = TIMER_A_CLOCKSOURCE_ACLK;

  initContParam.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;

  initContParam.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE;

  initContParam.timerClear = TIMER_A_DO_CLEAR;

  initContParam.startTimer = false;

  Timer_A_initContinuousMode(TIMER_A1_BASE, &initContParam);

 

  //Initiaze compare mode

  Timer_A_clearCaptureCompareInterrupt(TIMER_A1_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_0);

  Timer_A_initCompareModeParam initCompParam = {0};

  initCompParam.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_0;

  initCompParam.compareInterruptEnable = TIMER_A_CAPTURECOMPARE_INTERRUPT_ENABLE;

  initCompParam.compareOutputMode = TIMER_A_OUTPUTMODE_OUTBITVALUE;

  initCompParam.compareValue = COMPARE_VALUE;

  Timer_A_initCompareMode(TIMER_A1_BASE, &initCompParam);

  

  Timer_A_startCounter(TIMER_A1_BASE,TIMER_A_CONTINUOUS_MODE);

  //Enter LPM0, enable interrupts

  __bis_SR_register(LPM0_bits + GIE);

 

  //For debugger

  __no_operation();

  while(1)                                  // continuous loop

  {

  

  } 

}

//******************************************************************************

//

//This is the TIMER1_A3 interrupt vector service routine.

//

//******************************************************************************

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)

#pragma vector=TIMER1_A0_VECTOR

__interrupt

#elif defined(__GNUC__)

__attribute__((interrupt(TIMER1_A0_VECTOR)))

#endif

void TIMER1_A0_ISR (void)

{

    uint16_t compVal = Timer_A_getCaptureCompareCount(TIMER_A1_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_0)+COMPARE_VALUE;

    //Toggle P1.0

    GPIO_toggleOutputOnPin(GPIO_PORT_P1,GPIO_PIN0);

    //Add Offset to CCR0

    Timer_A_setCompareValue(TIMER_A1_BASE,TIMER_A_CAPTURECOMPARE_REGISTER_0,compVal);

}

关键字:MSP-EXP430F5529LP  开发板  定时器库函数 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic487926.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:msp430串口接收调试
下一篇:MSP-EXP430F5529LP开发板004-PWM库函数

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MSP-EXP430F5529LP开发板001-GPIO
代码很简单,改编自TI官网例程,如下所示(编译环境为IAR):#include "io430.h"int main( void ){  volatile unsigned int i;  // Stop watchdog timer to prevent time out reset  WDTCTL = WDTPW + WDTHOLD;  P1DIR |= BIT0;                            // P1.0
发表于 2020-02-01
MSP-EXP430F5529LP开发板001-GPIO
MSP-EXP430F5529LP开发板006-UART库函数
串口是比较常用的开发中比较常用的部分了,这部分难点就是波特率的设置了,为此还特地下了篇英文手册,硬着头皮看了下,学会如何配置了,下面就是串口初始化部分void myuart_init(){  //P3.3,4 = USCI_A0 TXD/RXD  GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P3,GPIO_PIN3 + GPIO_PIN4);   //Baudrate = 9600, clock freq = 4MHz  //UCBRx = 26, UCBRFx = 1, UCBRSx = 0, UCOS16
发表于 2020-02-01
MSP-EXP430F5529LP开发板006-UART库函数
MSP-EXP430F5529LP开发板002-GPIO库函数
因为之前一直在用STM32做项目,开发用的都是库函数,很方便,开发重点可以直接放在功能和逻辑上。想想TI这么大的厂商怎么可能少得了为我们提供这么便捷的服务,于是在百度上随便搜了下“MSP430库函数”就搜到了。下面是官网下载地址http://www.ti.com.cn/tool/cn/mspdriverlib点开后,下载第一个就是解压后将对应的“MSP430F5xx_6xx”所在目录的所有文件拷到自己的工程目录下在IAR中添加对应的.c文件,这里添加“gpio.c”即可另外在工程配置中添加对应头文件路径main函数中代码如下,上一篇文章中的#include "io430.h"需要去掉,否则一些宏定义会重复
发表于 2020-01-31
MSP-EXP430F5529LP开发板002-GPIO库函数
MSP-EXP430F5529LP开发板005-PWM库函数+时钟配置
从32转到MSP430最让我头大的就是它的时钟配置了,参考了一些网上的资料,看了几天终于大概了解了一点。上面这6点是关键,在后面的时钟初始化时要参考。本次实验目的是要实现P2.0口输出10kHz的PWM,这也是应用中电机控制的常用工作频率。要输出准确的频率,了解清楚各个时钟是非常必要的。首先明确思路,430中有三个时钟:辅助时钟ACLK,频率较低,软件选作各个外围模块的时钟信号,一般用于低速外设;系统主时钟MCLK,频率较高,主要用于CPU和系统,类似于主频;子系统时钟SMCLK,主要用于高速外设模块。这里我们利用TIMER_A产生PWM,选择SMCLK作为模块的时钟源,因此SMCLK的设置就是关键。LaunchPad为430
发表于 2019-10-17
MSP-EXP430F5529LP开发板005-PWM库函数+时钟配置
ARM 开发板嵌入式linux系统与主机PC通过串口传输文件
嵌入式linux系统与主机通过串口传输文件我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftp sftp等网络工具从网口下载。但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx、zmtx,另外一个是lsz、lrz。个人觉得zmrx/zmtx没有lsz/lrz稳定,建议还是用后者。下面介绍一下lsz/lrz的使用方法。    一、编译lrzsz并下载到开发板上从http://download.chinaunix.net/download/0007000/6293.shtml下一个lrzsz的tar包,解压缩后输入
发表于 2020-01-30
成功移植SQLite3到ARM Linux开发板
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。在开始之前,我们需要确认有SQLite3源码包;有交叉编译环境;有一块开发板;1、下载 SQLite3源码地址:http://www.sqlite.org
发表于 2020-01-30
成功移植SQLite3到ARM Linux开发板
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved