标题:
msp430f5529 pwm源程序
[打印本页]
作者:
1875201848
时间:
2018-7-12 13:34
标题:
msp430f5529 pwm源程序
msp430f5529还是5438a的,亲测有效,函数封装好了
单片机源程序如下:
#include <msp430f5438a.h>
void delay_1us(void)
{
unsigned int i;
for(i=0;i<100;i++);
}
// *************************************************************
// 延时函数,延时N*1us
// *************************************************************
void delay_nus(unsigned int n)
{
unsigned int i;
for(i=0;i<n;i++)
{
delay_1us();
}
}
// *************************************************************
// 延时函数,延时1ms
// *************************************************************
void delay_1ms(void)
{
unsigned int i;
for (i=0;i<1140;i++);
}
// *************************************************************
// 延时函数,延时N*ms
// *************************************************************
void delay_nms(unsigned int n)
{
unsigned int i;
for (i=0;i<n;i++)
{
delay_1ms();
}
}
// *************************************************************
// 主程序
// *************************************************************
void main(void)
{
unsigned const PWMPeriod = 200;
unsigned const PWMPeriod1= 300;
unsigned int i;
unsigned int j;
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P8DIR |= BIT1; // 设置P1.2为输出
P8SEL |= 0x01; // 设置P1.2为TA0.1输出
TA0CCAR0=500-1;
TA0CCTL1 = OUTMOD_7; // 设置PWM 输出模式为:7 - PWM复位/置位模式,
TA0CCR1 =PWMPeriod; // 设置PWM 周期
TA0CCTL2 = OUTMOD_7;
TA0CCR2 = PWMPeriod1;// 即输出电平在TAR的值等于CCRx时复位,当TAR的值等于CCR0时置位。
TA0CTL = TASSEL_2 + MC_1; // 设置TIMERA的时钟源为SMCLK, 计数模式为up
// _BIS_SR(LPM0_bits + GIE);
while(1)
{
//渐亮过程:不断设置CCR1的值,使翻转的时间变长,改变PWM的占空比
for(i=0;i<PWMPeriod;i+=1)
{
TA0CCR1=i;
delay_nus(600); //占空比变化的延时,调整延迟时间可改变呼吸灯变亮的速度
}
//渐暗过程:不断设置CCR1的值,使翻转的时间变短,改变PWM的占空比
for(i=PWMPeriod;i>0;i-=1)
{
TA1CCR1=i;
delay_nus(50); //占空比变化的延时,调整延迟时间可改变呼吸灯变暗的速度
}
delay_nms(70);
}
}
复制代码
所有资料51hei提供下载:
timertest.zip
(346.8 KB, 下载次数: 98)
2018-7-12 13:34 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
AresZZ
时间:
2018-7-15 11:58
感谢感谢
作者:
haozhengnaxi
时间:
2018-7-15 12:53
顶一下
作者:
AresZZ
时间:
2018-7-15 15:48
程序好像有问题,灯不会渐变,而且程序54行TA0CCR0=500-1; 多打了个A。
请问大佬有关于5529舵机的PWM信号控制的程序吗?
作者:
小小青年
时间:
2018-7-18 16:45
P8DIR |= BIT1; // 设置P1.2为输出 P8SEL |= 0x01; // 设置P1.2为TA0.1输出
作者:
小小青年
时间:
2018-7-18 16:45
你这里是说的P8.1吧
作者:
小小青年
时间:
2018-7-18 16:46
P8DIR |= BIT1; // 设置P1.2为输出
P8SEL |= 0x01; // 设置P1.2为TA0.1输出
这里是说的P8.1吧?怎么写p1.2
作者:
放技能不给你发
时间:
2019-10-14 08:59
你确定亲测有效吗,里面存在好几处错误,不过还是感谢你,提供了一个思路。
作者:
coldwind
时间:
2020-1-6 17:44
问一下 MSP430f149 改一下其中的led端口和头文件啥的 是不是可以通用啊? 我改了以后msp430f149不能渐变
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1