#include <msp430f6638.h> void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT while(BAKCTL & LOCKIO) // Unlock XT1 pins for operation BAKCTL &= ~(LOCKIO); UCSCTL6 &= ~(XT1OFF); // XT1 On UCSCTL6 |= XCAP_3; // Internal load cap // Loop until XT1 fault flag is cleared do { UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); // Clear XT2,XT1,DCO fault flags SFRIFG1 &= ~OFIFG; // Clear fault flags }while (SFRIFG1&OFIFG); // Test oscillator fault flag P1DIR |= BIT2+BIT3; // P1.2 and P1.3 output P1SEL |= BIT2+BIT3; // P1.2 and P1.3 options select TA0CCR0 = 512-1; // PWM Period TA0CCTL1 = OUTMOD_7; // CCR1 reset/set TA0CCR1 = 384; // CCR1 PWM duty cycle TA0CCTL2 = OUTMOD_7; // CCR2 reset/set TA0CCR2 = 128; // CCR2 PWM duty cycle TA0CTL = TASSEL_1 + MC_1 + TACLR; // ACLK, up mode, clear TAR __bis_SR_register(LPM3_bits); // Enter LPM3 __no_operation(); // For debugger }
时间: 2024-02-10 11:33:53 浏览: 117
MSP430 定时器B与看门狗定时器(1)
这段代码是 MSP430 微控制器的代码,用于控制 P1.2 和 P1.3 两个引脚产生 PWM 信号。其中使用了 ACLK 作为计时器时钟源,TA0CCR0 设置了 PWM 信号的周期,TA0CCTL1 和 TA0CCTL2 分别设置了 P1.2 和 P1.3 引脚产生的 PWM 信号的占空比。代码中还包括了解锁 XT1 引脚,以及处理 XT1 振荡器故障标志的部分。
阅读全文