2147|0

25

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

[TI低功耗设计大赛】按键控制加减PWM波占空比 [复制链接]

本帖最后由 0℃的春天 于 2014-12-6 13:40 编辑

  最近个把月烦心事真多 又是跟媳妇闹分手 又是创新实验大赛 都忘记这个事了 收拾东西的是发现了板子 才想起来 进论坛一看 比赛延期了 正好 反正最近心塞 复习也复习不进去 接着写写程序吧 说多了都是泪。
  自己摸索着写了个按键加减PWM波的占空比 按键S1(P4.5)减占空比 S2(P1.1)加占空比 为了好区分 加减步进的幅度不一样 我亲自用示波器看过 程序运行正常。
  下面是程序:
#include "msp430fr5969.h"
#define uchar unsigned char
#define uint unsigned int

void delay(uint a)
{
  uint i,j;
  for(i=0;i<100;i++)
    for(j=0;j }

void main()
{
  
  WDTCTL = WDTPW + WDTHOLD;                   // 关狗
  
  CSCTL0_H = 0xA5;                           //系统时钟配置
  CSCTL1 |= DCOFSEL0 + DCOFSEL1;             //设置DCO频率为8M
  CSCTL2 = SELA_3 + SELS_3 + SELM_3;         //设置 ACLK = SMCLK = DCO/8
  CSCTL3 = DIVA_3 + DIVS_3 + DIVM_3;         //设置分频
  
  TA1CCR0 = 1000-1;                         // PWM 周期
  TA1CCTL1 = OUTMOD_7;                      // PWM 模式
  TA1CCR1 = 250;                            // PWM 占空比
  TA1CTL = TASSEL_2 + MC_1 + TACLR;         // SMCLK, up mode, clear TAR
  
  PM5CTL0 &= ~LOCKLPM5;                     //启用GPIO配置 关闭I/O禁能  
  P1DIR |= BIT2;                            // P1.2  输出
  P1SEL0 |= BIT2;                           // P1.2 外围作为PWM输出
  P1REN=BIT1;                               //p1.1启用上拉   
  P1DIR&=~BIT1;                             //P1.3作为输入,按键加PWM占空比
  P4REN=BIT5;                               //P4.5启用上拉
  P4DIR&=~BIT5;                             //P4.5作为输入,按键减PWM占空比
  
  while(1)                                  //按键检测
  {
    if (!(P1IN&BIT1))
    {
      delay(100);
      if (!(P1IN&BIT1))
      {
        if (TA1CCR1>=1000) TA1CCR1=10;
        else TA1CCR1+=10;
      }
      while(!(P1IN&BIT1));
      delay(100);
     }
   
    if (!(P4IN&BIT5))
    {
      delay(100);
      if (!(P4IN&BIT5))
      {
        if (TA1CCR1<=0) TA1CCR1=980;
        else TA1CCR1-=20;
      }
      while(!(P4IN&BIT5));
      delay(100);
     }
  }  
}
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表