/*******************************************************
程序功能:用从P2.3和P2.4输出的PWM波形驱动LED闪烁
P2.3口输出方波的占空比为75%
P2.4口输出方波的占空比为25%
-------------------------------------------------------
测试说明:观察LED的亮灭的时间长短
*******************************************************/
#include
#include "BoardConfig.h"
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 关狗
BoardConfig(0xb0); // 关闭数码管和电平转换,打开流水灯
P2DIR = 0xff; // P2端口设置为输出
P2OUT = 0xff; // 关闭其他LED
P2SEL |= BIT3 + BIT4; // P2.3和P2.4连接内部模块
CCR0 = 4096-1; // PWM周期为1S
CCTL1 = OUTMOD_7; // CCR1 reset/set
CCR1 = 3072; // CCR1 PWM duty cycle
CCTL2 = OUTMOD_7; // CCR2 reset/set
CCR2 = 1024; // CCR2 PWM duty cycle
TACTL = TASSEL_1 + ID_3 + MC_1; // ACLK/8, up mode
_BIS_SR(LPM3_bits); // Enter LPM3
}
不明白的就是为什么 P2.3, P2.4端口可以,其他端口就不行,其他方面都明白了,我在其他定义里看了,但是都没有找到…… 是否P2.3, P2.4就是F149的PWM输出端……
P2SEL |= BIT3 + BIT4
某些复用端口的特殊功能吗??
那是因为你用的是TA定时器功能,P2.3,P2.4的特殊功能就是TA输出