我需要在 MSP430F5438A 上实施一个 PWM 来支持背光器件。 此器件连接至 引脚1.1
我找到了一个示例、该示例提供了设置计时器 A0 0和计时器 A0 1以生成 PWM 的方法。
下面是代码:
P1DIR |= BIT1;//将引脚1.1设置为输出方向。
P1SEL |= BIT1;//选择引脚1.1作为我们的 PWM 输出。
TA0CCR0 = 1000;//将计时器 A0捕获/比较0寄存器中的周期设置为1000us。
TA0CCTL1 = OUTMOD_7;
TA0CCR1 = 500;//电源打开的周期,以微秒为单位。 它是时间的一半、相当于50%的占空比。
TA0CTL = tassel_2 + MC_1;//tassel_2选择 SMCLK 作为时钟源、MC_1告诉它计数到 TA0CCR0中的值。
当执行时、GPIO 上没有输出。
我已验证是否可以 使用以下代码将 A0 0计时器路由到 P1.1。:
P1DIR |= BIT1;//将引脚1.1设置为输出方向。
P1SEL |= BIT1;//选择引脚1.1作为我们的 PWM 输出。
TA0CCR0 = 1*MS_10_tick;//时间大约为10ms
TA0CCTL0 = OUTMOD_7;
TA0CTL = TASSEL_2 + MC_1;// SMCLK、升压模式
相同的实现不能使用 A0运行1:
P1DIR |= BIT1;//将引脚1.1设置为输出方向。
P1SEL |= BIT1;//选择引脚1.1作为我们的 PWM 输出。
TA0CCR1 = 1*MS_10_tick;//时间大约为10ms
TA0CCTL1 = OUTMOD_7;
TA0CTL = TASSEL_2 + MC_1;// SMCLK、升压模式
是否有某种类型的映射会阻止使用 A0 1?
另一种方法是使用2个单独的中断来生成 PWM。 遗憾的是、我可能只能使用 A0。 我可以使用 A0生成中断、.int54:
P1DIR |= BIT1;//将引脚1.1设置为输出方向。
TA0CCTL0 = CCIE;// CCR0中断被启用
TA0CCR0 = 1*MS_10_tick;//时间大约为10ms
TA0CTL = TASSEL_2 + MC_1;// SMCLK、升压模式
但使用以下命令在 int53上看不到它们:
P1DIR |= BIT1;//将引脚1.1设置为输出方向。
TA0CCTL1 = CCIE;// CCR1中断被启用
TA0CCR1 = 1*MS_10_tick;//时间大约为10ms
TA0CTL = TASSEL_2 + MC_1;// SMCLK、升压模式
计时器 A0 1似乎未启用?
我在其他线程中读到、如何配置计时器存在特定于器件的限制。 不确定这是否是问题所在。 任何帮助都会有所帮助。
-Steve