这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » PWM 急,PWM

共2条 1/1 1 跳转至

PWM 急,PWM

院士
2006-09-17 18:14:16     打赏
PWM 急,PWM

院士
2006-12-22 22:43:00     打赏
2楼
问 我需要输出6路不同相位的PWM输出,相位差为60度,不知道如何设定相位差,请各位大虾帮忙。
我用的是MSP430F449。 1: //*******************************************************************************
// MSP-FET430P140 Demo - Timer_B, PWM TB1-6, Up Mode, 32kHz ACLK
//
// Description; This program outptus six PWM signals on P2.2,3 and P3.4-7
// using Timer_B configured for up mode. The value in CCR0 defines the PWM
// period and the values in CCR1-6 the PWM duty cycles. Using 32kHz ACLK
// as TBCLK, the timer period is 15.6ms. Normal operating mode is LPM3.
// ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = default DCO = 32 x ACLK = 1048576Hz
// //* An external watch crystal between XIN & XOUT is required for ACLK *//
//
// MSP430F449
// -----------------
// /|\| XIN|-
// | | | 32kHz
// --|RST XOUT|-
// | |
// | P2.2/TB1|--> CCR1 - 75% PWM
// | P2.3/TB2|--> CCR2 - 25% PWM
// | P3.4/TB3|--> CCR3 - 12.5% PWM
// | P3.5/TB4|--> CCR4 - 6.25% PWM
// | P3.6/TB5|--> CCR5 - 3.125% PWM
// | P3.7/TB6|--> CCR6 - 1.5625% PWM
//
// M. Buccini
// Texas Instruments Inc.
// Feb 2005
// Built with IAR Embedded Workbench Version: 3.21A
//******************************************************************************
#include <MSP430x44x.h>

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
FLL_CTL0 |= XCAP18PF; // Configure load caps
P2DIR |= 0x0c; // P2.2 - P2.3 output
P2SEL |= 0x0c; // P2.3 - P2.3 TBx options
P3DIR |= 0xF0; // P3.4 - P3.7 output
P3SEL |= 0xF0; // P3.4 - P3.7 TBx options
TBCCR0 = 512-1; // PWM Period
TBCCTL1 = OUTMOD_7; // CCR1 reset/set
TBCCR1 = 384; // CCR1 PWM duty cycle
TBCCTL2 = OUTMOD_7;
TBCCR2 = 128;
TBCCTL3 = OUTMOD_7;
TBCCR3 = 64;
TBCCTL4 = OUTMOD_7;
TBCCR4 = 32;
TBCCTL5 = OUTMOD_7;
TBCCR5 = 16;
TBCCTL6 = OUTMOD_7;
TBCCR6 = 8;

TBCTL = TBSSEL_1 + MC_1; // ACLK, up mode

_BIS_SR(LPM3_bits); // Enter LPM3
}

周期一样,脉宽不同 2: 谢谢版主 3: 可相位差怎么设置阿? 4: 如果你输出的波形是有规律的,即周期性的,使用一个定时器做载波频率,定期中断,如20KHZ,再在中断函数里查表,根据不同读相位选取常数在表格中的位置,对CCR的常数重加载,达到改变相位的目的.当然如果采用不同的表格(6路输出,6套表格).可以比采用同一个表格节省时间.我以前使用三菱的单片机采用的是1024点的正弦表,MCU是16MHZ振荡频率,出来的三相PWM波很漂亮.不知道MSP430如何,能否吃得消在20KHZ的中断里做一定的判断跳转

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]