找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3575|回复: 1
收起左侧

MSP4305529呼吸灯

[复制链接]
ID:371259 发表于 2018-7-14 09:43 | 显示全部楼层 |阅读模式
  1. unsigned const PWMPeriod = 1500; //设置PWM周期参数,const声明此值不允许改变.该数值太大,会导致LED闪烁
  2.   volatile unsigned int i;        //声明变量i是随时可变的,系统不要去优化这个值
  3.   WDTCTL = WDTPW + WDTHOLD;   // 关闭看门狗
  4.   P1DIR |=BIT3;              // 设置 P1.3为输出
  5.   P1SEL |=BIT3;              // 设置 P1.3为TA0.2输出
  6.   TA0CCR0 = PWMPeriod;           // 设置PWM 周期
  7.   TA0CCTL2 = OUTMOD_7;           // 设置PWM 输出模式为:7 - PWM复位/置位模式,
  8.                               // 即输出电平在TAR的值等于CCR2时复位为0,当TAR的值等于CCR0时置位为1,改变CCR2,从而产生PWM。其实模式2也可以
  9.   TA0CTL= TASSEL_2 +MC_1;    // 设置TIMERA的时钟源为SMCLK, 计数模式为up,到CCR0再自动从0开始计数
  10.   while(1)
  11.   {
  12.    TA0CCR2=0;//确保最开始是暗的
  13.     //渐亮过程:不断设置TA0CCR2的值,使翻转的时间变长,改变PWM的占空比
  14.     for(i=0;i<PWMPeriod;i+=1)
  15.     {
  16.       TA0CCR2=i;
  17.       delay_nms(4-(i/500));  //占空比变化的延时,调整延迟时间可改变呼吸灯变暗的速度
  18.                              //在暗的时候延长delay时间,可增强效果
  19.      }
  20.     //渐暗过程:不断设置TA0CCR2的值,使翻转的时间变短,改变PWM的占空比
  21.     for(i=PWMPeriod;i>0;i-=1)
  22.     {
  23.       TA0CCR2=i;
  24.       delay_nms(4-(i/500));           //占空比变化的延时,调整延迟时间可改变呼吸灯变暗的速度
  25.                                     //在暗的时候延长delay时间,可增强效果
  26.     }
  27.      TA0CCR2=0;  //确保灯暗
  28.      delay_nms(250); //时间长一点,增强视觉效果
复制代码



huxideng.zip

892 Bytes, 下载次数: 49, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:440731 发表于 2018-12-6 10:51 | 显示全部楼层
这个程序  没办法生成.0ut文件啊
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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