找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2726|回复: 0
收起左侧

基于msp430f5529的PWM波控制程序

[复制链接]
ID:734275 发表于 2020-12-28 17:44 | 显示全部楼层 |阅读模式
  1. ///*
  2. // *
  3. // * 按钮调节PWM占空比
  4. // *
  5. // /*


  6. #include <msp430f5529.h>

  7. int pwm = 32;                                  //给pwm附一个初始值
  8. volatile unsigned int flag =0;                 //优化赋值初始值flag=0
  9. void Keyscan();                                //键盘扫描
  10. int main(void)
  11. {
  12.         WDTCTL = WDTPW + WDTHOLD;              // 关闭看门狗
  13.         P1DIR |= BIT2;                         //设置1.2输出波
  14.         P1SEL |= BIT2;

  15.         P4DIR |= BIT7;                         //灯LED2
  16.         P4OUT &=~BIT7;

  17.         P2OUT |= BIT1;                         //按钮S1
  18.         P2REN |= BIT1;

  19.         TA0CCR0 = 64;                       //PWM周期定义

  20.         TA0CTL = TASSEL_1 + MC_1 + TACLR;      //参考时钟选择ACLK,增计数模式,清除TAR计数器

  21.         while(1)
  22.         {
  23.             Keyscan();

  24.             if(flag!=0)                        //当flag不等于0时
  25.             {
  26.                 P4OUT |= BIT7;                 //4.7LED灯亮,高电平
  27.             }
  28.             else
  29.             {
  30.                 P4OUT &=~ BIT7;
  31.             }
  32.             TA0CCTL1 = OUTMOD_7;               //CCR1比较输出模式7:复位,定位。
  33.             TA0CCR1 =pwm;                      //pwm占空比的定义,随pwm的变化,占空比不同
  34.         }
  35. }
  36. void Keyscan()
  37. {
  38.     if((P2IN&BIT1) ==0)
  39.     {
  40.         __delay_cycles(10000);
  41.         if((P2IN& BIT1)==0)
  42.         {
  43.             while((P2IN& BIT1)==0)
  44.             {
  45.                 flag = ~flag;                  //取反
  46.             }
  47.             pwm = pwm-2;                 //先接示波器上看,占空比上升沿所占时间,启动的时候要低于1ms,然后按按钮,让占空比上升沿时间在1~2ms内
  48.                                                //超过2ms,不转,低于1ms也停转。
  49.         }
  50.     }
  51. }
复制代码


回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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