msp430G2553单片机pwm的程序呼吸灯 5

我从网上找的程序,下载到班子里面发现没有作用,灯并没有亮暗变化,好像是只有轻微的闪烁,求大神解答!MSP430G2553测试程序(呼吸灯)//介绍:该程序利用TIMERA... 我从网上找的程序,下载到班子里面发现没有作用,灯并没有亮暗变化,好像是只有轻微的闪烁,求大神解答!
MSP430G2553测试程序(呼吸灯)
// 介绍: 该程序利用TIMER A 的 UP模式
在P1.6脚产生PWM输出
// 将CCR0设置为1500来定义PWM的周期,利用循环不断改变CCR1的值,
//
实现利用改变PWM的占空比来改变LED亮度.
// ACLK = na, SMCLK = MCLK = TACLK = default
DCO

#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<n;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<PWMPeriod;i+=1)
{
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增强效果
}
}
展开
 我来答
查晓筠0i5
2014-12-13 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4911万
展开全部

硬件和软件要设计一致

我做单片机的

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宿兴电子
2024-10-18 广告
联系我们一、有无震荡源 无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。 二、价格不同 有源蜂鸣器往比无源蜂鸣器贵,就是因为里面多个震荡... 点击进入详情页
本回答由宿兴电子提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式