//******************************************************************************
//修正者http://jiwm.blog.163.com
//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|-
//| ||
//–|RSTXOUT|-
//||
//|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增强作用
}
}
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/256284.html