此帖出自微控制器 MCU论坛
最新回复
//如何从MSP430F149的P2.4发连续的36个占空比为26%波
#define PWM_COUNT 36 //要输出的PWM脉冲数
static unsigned char PWM_count ;
////////////////////////////////////////////////////
static void SetupPWM( void )
{
TACTL = 0 ;//stop timer
//port2 setup
P2DIR |= BIT4 ;//output direction
P2SEL |= BIT4 ;//module function
//setup TA and start it
CCTL0 = CCIE ;//compare mode ,ena××e interrupt
CCTL2 = OUTMOD_7 ; // reset/set mode , disa××e interrupt
CCR0 = 100 ;
CCR2 = 26 ;
PWM_count = 0 ;
}
//////////////////////////////////////////////////////
static inline void StartPWM( void )
{
TACTL = TASSEL_1 + // Timer A clock source : ACLK
MC_1 ; //Timer A mode control: 1 - Up to CCR0
}
//////////////////////////////////////////////////////
#pragma vector=TIMERA0_VECTOR
__interrupt void CCR0_ISR(void)
{
if( ++PWM_count >= PWM_COUNT )
{
CCTL0 = TACTL = 0 ;//stop tA
}
}
//////////////////////////////////////////////////////
void main( void )
{
WDTCTL = WDTPW + WDTHOLD;
SetupPWM();
__e n a b l e_interrupt();
while( 1 )
{
StartPWM() ;
......
......// do other task
}
}
详情
回复
发表于 2009-5-13 12:53
| ||
|
||
| |
|
|
| |
|
|
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
浏览过的版块 |
EEWorld Datasheet 技术支持