MSP-EXP430F5529LP开发板004-PWM库函数

2020-02-13来源: eefocus关键字:MSP-EXP430F5529LP  开发板  PWM库函数

测试了TIMER_A的PWM几种模式


pwmMultipleUp


2.06kHz,75%占空比


#include "wdt_a.h"

#include "gpio.h"

#include "timer_a.h"

#define TIMER_PERIOD 511

#define DUTY_CYCLE1  384

#define DUTY_CYCLE2  128

int main( void )

{

  volatile unsigned int i;

  WDT_A_hold(WDT_A_BASE);

  

  //P2.0 and P2.1 output

  //P2.0 and P2.1 options select

  GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2,GPIO_PIN0 + GPIO_PIN1);

 

  //Start timer

  Timer_A_initUpModeParam initUpParam = {0};

  initUpParam.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;

  initUpParam.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;

  initUpParam.timerPeriod = TIMER_PERIOD;

  initUpParam.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE;

  initUpParam.captureCompareInterruptEnable_CCR0_CCIE = TIMER_A_CCIE_CCR0_INTERRUPT_DISABLE;

  initUpParam.timerClear = TIMER_A_DO_CLEAR;

  initUpParam.startTimer = false;

  Timer_A_initUpMode(TIMER_A1_BASE, &initUpParam);

 

  Timer_A_startCounter(TIMER_A1_BASE,TIMER_A_UP_MODE);

 

  //Initialize compare mode to generate PWM1

  Timer_A_initCompareModeParam initComp1Param = {0};

  initComp1Param.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1;

  initComp1Param.compareInterruptEnable = TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE;

  initComp1Param.compareOutputMode = TIMER_A_OUTPUTMODE_RESET_SET;

  initComp1Param.compareValue = DUTY_CYCLE1;

  Timer_A_initCompareMode(TIMER_A1_BASE, &initComp1Param);

 

  //Initialize compare mode to generate PWM2

  Timer_A_initCompareModeParam initComp2Param = {0};

  initComp2Param.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_2;

  initComp2Param.compareInterruptEnable = TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE;

  initComp2Param.compareOutputMode = TIMER_A_OUTPUTMODE_RESET_SET;

  initComp2Param.compareValue = DUTY_CYCLE2;

  Timer_A_initCompareMode(TIMER_A1_BASE, &initComp2Param);

 

  //Enter LPM0

  __bis_SR_register(LPM0_bits);

 

  //For debugger

  __no_operation();

  while(1)                                  // continuous loop

  {

  

  } 

}

pwmSingle


2.06kHz,68%占空比


#include "wdt_a.h"

#include "gpio.h"

#include "timer_a.h"

#define TIMER_PERIOD 511

#define DUTY_CYCLE  350

int main( void )

{

  volatile unsigned int i;

  WDT_A_hold(WDT_A_BASE);

  

  //P2.0 as PWM output

  GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2,GPIO_PIN0);

 

  //Generate PWM - Timer runs in Up mode

  Timer_A_outputPWMParam param = {0};

  param.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;

  param.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;

  param.timerPeriod = TIMER_PERIOD;

  param.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1;

  param.compareOutputMode = TIMER_A_OUTPUTMODE_RESET_SET;

  param.dutyCycle = DUTY_CYCLE;

  Timer_A_outputPWM(TIMER_A1_BASE, ¶m);

 

  //Enter LPM0

  __bis_SR_register(LPM0_bits);

 

  //For debugger

  __no_operation();

  while(1)                                  // continuous loop

  {

  

  } 

}

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

上一篇:MSP-EXP430F5529LP开发板003-定时器库函数
下一篇:MSP430F5529LP+CC3000学习心得(一)——与AP的连接

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

推荐阅读

MSP-EXP430F5529LP开发板003-定时器库函数
430的定时器的有点类似于51单片机,利用定时器实现P1.0口LED灯1s闪烁代码如下#include "wdt_a.h"#include "gpio.h"#include "timer_a.h"#define COMPARE_VALUE 32768int main( void ){  volatile unsigned int i;  WDT_A_hold(WDT_A_BASE);    GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);  GPIO_setOutputHig
发表于 2020-02-12
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;                           
发表于 2020-02-01
MSP-EXP430F5529LP开发板001-GPIO
MSP-EXP430F5529LP开发板006-UART库函数
= USCI_A_UART_receiveData(USCI_A0_BASE);      USCI_A_UART_transmitData(USCI_A0_BASE,receivedData);      break;    default:       break;  }}实现上位机向430发送数据,原封不动返回
发表于 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库函数+时钟配置
开发板大赛落幕,为本土创新赋能
专注于引入新品推动行业创新的电子元器件分销商贸泽电子(Mouser Electronics)宣布“首届贸泽电子原创开发板设计大赛”圆满落幕。此次贸泽电子针对国内硬件开发者,携手亚德诺半导体、美信半导体、微芯科技、安森美半导体、罗姆半导体、德州仪器等国际知名厂商所举办的大赛,吸引了300多组选手报名,历经海选100组入围,最终7组选手在评委从创意性、技术性、功能性和量产可行性、完成度等四个方面进行综合性考量后,终于选出兼具创意和实用价值非常高的项目作品,诞生大赛一等奖(1组)、二等奖(2组)、三等奖(3组)和创意奖(1组)。 一如贸泽电子借助大赛“寻找懂用户、有灵魂的开发板”,让更多的本土硬件开发者实力得以全面展现的初衷
发表于 2020-02-21
小广播
何立民专栏 单片机及嵌入式宝典

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

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