工具/软件:Code Composer Studio
是否有人知道如何找到TA0CCR0的值,该值将为我提供1kHz的PWM频率? 现在是10kHz,但我有点困惑如何获得 TA0CCR0的值
#include "msp430G2553.h"
#include <stdint.h>
void main( void )
{
WDTCTL =(WDTPW | WDTHOLD);//停止看门狗计时器
BCSCTL1 = CALC1_8MHZ;//将范围设置为8MHz
DCOCTL = CALDCO_8MHZ;//设置DCO步进调制,
0x40 MHz //将WFP 2.6 的特殊功能设置为定时器模块
P2DIR = 0x40;//将WFP 2.6 设置为输出方向
TA0CCR0 =(800 - 1);//频率10kHz
TA0CCR1 = 400;//占空比50 %
TA0CCTL1 = OUTMOD_7; //重置/设置
TA0CTL =(tassel_2 | ID_0 | MC_1 | TCLR | TAIE);// SMCLK,分隔器1,上模式,清除, 中断已启用
_BIS_SR( GIE );//启用全局中断
同时(1);//无限循环
}//
Timer0 A1中断服务例程
#pragma vector = TIMER0_A1_Vector
__interrupt void Timer0_A1_ISR( void ){
静态uint16_t计数器=0;//循环计数
器静态uint8_t方向=1,0;// 向下
TA0CTL &=~TAIFG;//清除中断标志
IF(++counter >= 9万 // 9s
{
IF (方向)//方向为向上
{
TA0CCR1 +=40;//将5 % 添加到现有值中
IF (TA0CCR1 == 400)//达到50 % 占空比
{
方向= 0;//下一次时间下移
}
}
Else //方向向下
{
TA0CCR1 -=40;//从现有值减去5 %
IF (TA0CCR1 == 40)//达到5 % 占空比
{
方向= 1;//下一次进入
}
}
计数器= 0;//重置计数
器}