本帖最后由 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);
}
}
}