社区导航

 

搜索
查看: 228|回复: 0

[资料分享] 基于MSP430单片机的电机PWM调速原理

[复制链接]

3243

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2020-2-15 18:13 | 显示全部楼层 |阅读模式

/*
程序说明:利用定时器TA产生固定周期的方波,控制方波高电平时间即可控
制平均输出功率。这种控制方法称为PWM调制。
MSP430单片机的定时器TA可以在无需CPU干预的情况下输出2
路PWM调制波形。用其中一路(TA1)通过三极管驱动电动机。只要
写CCR1寄存器即可随时改变占空比,从而改变电机功率。这种控
制方法功率损失很小(控制元件导通/截至都不耗电),效率高。

*/
//
//
// MSP430FE425
// -----------------
// | XIN|-
// | | 32kHz
// | XOUT|-
// | |
// | P1.2/TA1|----->三极管驱动--->小马达 
// | (CCR1) | _ _ _ _
// | | _| |__| |__| |__| |_
// | | 40%~100% PWM
//

#include <MSP430X42X.h>

void Sys_Init()
{
WDTCTL=WDTPW+WDTHOLD; //关闭看门狗
FLL_CTL0|=XCAP18PF; //配置晶振负载电容
P1DIR |= BIT2; // P1.2 output
P1SEL |= BIT2; // P1.2 TA1 otions 
TACTL = TASSEL_1 + MC_1; // ACLK, up mode
CCR0 = 500; // PWM Period
CCTL1 = OUTMOD_7; // CCR1 reset/set
CCR1 = 200; // CCR1 PWM duty cycle

}

void main( void )
{ int i;
char SpeedMode=0;
Sys_Init();
while(1)
{
for(i=0;i<4000;i++); //延迟

if(SpeedMode==0) //加速模式下
{
CCR1++; //占空比不断提高
if(CCR1>=500) SpeedMode=1; //到达100%后转为减速模式

if(SpeedMode==1) //减速模式下
{
CCR1--; //占空比不断降低
if(CCR1<=200) SpeedMode=0; //到达40%后转为加速模式

}


回复

使用道具 举报

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

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-4-6 21:11 , Processed in 0.080970 second(s), 17 queries , Gzip On, MemCache On.

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