MSP430G2553测试程序(呼吸灯)

来源:本站
导读:目前正在解读《MSP430G2553测试程序(呼吸灯)》的相关信息,《MSP430G2553测试程序(呼吸灯)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《MSP430G2553测试程序(呼吸灯)》的详细说明。
简介:MSP430G2553测试程序(呼吸灯)

//MSP430G2553 呼吸灯演示程序 - 使用Timer_A,Up Mode, DCO SMCLK

//

// 介绍: 该程序利用TIMER A 的 UP模式 在P1.6脚产生PWM输出

// 将CCR0设置为1500来定义PWM的周期,利用循环不断改变CCR1的值,

// 实现利用改变PWM的占空比来改变LED亮度.

// ACLK = na, SMCLK = MCLK = TACLK = default DCO

//

// MSP430G2553

// -----------------

// /|| XIN|-

// | | |

// --|RST XOUT|-

// | |

// | P1.6/TA1|--> CCR1 - PWM

//

// 使用 MSP430 LaunchPad , MSP430G2553芯片

// 在IAR Embedded Workbench for MSP430 5.40下编译测试通过

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

#include "msp430g2553.h"

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

// 延时函数,对于1M主频,约延时1ms

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

void delay_1ms(void)

{

unsigned int k;

for (k=0;k<195;k++);

}

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

// 延时函数,延时n*ms

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

void delay_nms(unsigned int n)

{

unsigned int j;

for (j=0;j

{

delay_1ms();

}

}

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

// 主程序

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

void main(void)

{

unsigned const PWMPeriod = 1500; //设置PWMPeriod参数

volatile unsigned int i; //变量

WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗

BCSCTL1= CALBC1_1MHZ; //1M内部时钟,其他也可以

DCOCTL = CALDCO_1MHZ;

P1DIR |=BIT6; // 设置 P1.6为输出

P1SEL |=BIT6; // 设置 P1.6为TA0.1输出

TACCR0 = PWMPeriod; // 设置PWM 周期

TACCTL1 = OUTMOD_7; // 设置PWM 输出模式为:7 - PWM复位/置位模式,

// 即输出电平在TAR的值等于CCR1时复位为0,当TAR的值等于CCR0时置位为1,改变CCR1,从而产生PWM。其实模式2也可以

TACTL = TASSEL_2 +MC_1; // 设置TIMERA的时钟源为SMCLK, 计数模式为up,到CCR0再自动从0开始计数

while(1)

{

CCR1=0;//确保开始是暗的

//渐亮过程:不断设置CCR1的值,使翻转的时间变长,改变PWM的占空比

//由于只有1个定时器,编程有些你困难,故仍引入delay函数

for(i=0;i

{

CCR1=i;

delay_nms(4-(i/500)); //占空比变化的延时,调整延迟时间可改变呼吸灯变暗的速度

//在暗的时候延长delay时间,可增强效果

}

//渐暗过程:不断设置CCR1的值,使翻转的时间变短,改变PWM的占空比

for(i=PWMPeriod;i>0;i-=1)

{

CCR1=i;

delay_nms(4-(i/500)); //占空比变化的延时,调整延迟时间可改变呼吸灯变暗的速度

//在暗的时候延长delay时间,可增强效果

}

CCR1=0; //确保灯暗

delay_nms(600); //暗0.6S增强效果

}

}

提醒:《MSP430G2553测试程序(呼吸灯)》最后刷新时间 2024-03-14 01:13:55,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《MSP430G2553测试程序(呼吸灯)》该内容的真实性请自行鉴别。