找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2584|回复: 0
打印 上一主题 下一主题
收起左侧

这段程序为啥生成不了.out文件MSP430F5529呼吸灯

[复制链接]
跳转到指定楼层
楼主
ID:440731 发表于 2018-12-6 11:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <msp430f5529.h>
void delay_1ms(void)
{
        {
                unsigned int k;
                for(k=0;k<195;k++);
        }
}
void delay_nms(unsigned int n )
{
        unsigned int j;
        for(j=0;j<n;j++)
        {
                delay_1ms();
        }
}
int main( void )
{
        unsigned const PWMPeriod = 1500; //设置PWM周期参数,const声明此值不允许改变.该数值太大,会导致LED闪烁
          volatile unsigned int i;        //声明变量i是随时可变的,系统不要去优化这个值
          WDTCTL = WDTPW + WDTHOLD;   // 关闭看门狗
          P2DIR |= BIT1;
          P2SEL |= BIT1;            // 设置 p2.1为TA1.2输出
          TA1CCR0 = PWMPeriod;           // 设置PWM 周期
          TA1CCTL2 = OUTMOD_7;           // 设置PWM 输出模式为:7 - PWM复位/置位模式,
                                      // 即输出电平在TAR的值等于CCR2时复位为0,当TAR的值等于CCR0时置位为1,改变CCR2,从而产生PWM。其实模式2也可以
          TA1CTL= TASSEL_2 +MC_1;    // 设置TIMERA的时钟源为SMCLK, 计数模式为up,到CCR0再自动从0开始计数
          while(1)
          {
           TA1CCR2=0;//确保最开始是暗的
            //渐亮过程:不断设置TA0CCR2的值,使翻转的时间变长,改变PWM的占空比
            for(i=0;i<PWMPeriod;i+=1)
            {
              TA1CCR2=i;
              delay_nms(4-(i/500));  //占空比变化的延时,调整延迟时间可改变呼吸灯变暗的速度
                                     //在暗的时候延长delay时间,可增强效果
             }
            //渐暗过程:不断设置TA0CCR2的值,使翻转的时间变短,改变PWM的占空比
            for(i=PWMPeriod;i>0;i-=1)
            {
              TA1CCR2=i;
              delay_nms(4-(i/500));           //占空比变化的延时,调整延迟时间可改变呼吸灯变暗的速度
                                            //在暗的时候延长delay时间,可增强效果
            }
             TA1CCR2=0;  //确保灯暗
             delay_nms(250); //时间长一点,增强视觉效果
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表