您好、TI 团队:
我正在项目中使用该 MSP430FR2433。 我想要的是 MSP 应将 LED 打开和关闭2秒、然后进入 LMP3模式60秒、此过程应重复。 我不知道我在此主题中提供的代码中有什么问题、因为 LED 从不关闭并保持亮起状态。 如果有人可以帮助我更正此代码以获取所需的结果、那将非常好。
谢谢!
此致、
普赫拉吉·辛格
#包含
整型计数;
void delay_seconds (unsigned int seconds)
{
TA1CCR0 =(int)(32768 *秒);//根据 LFXT 频率(32768Hz)设置计数目标
TA1CTL |= MC__UP;//将计数模式设置为向上
_ bis_SR_register (LPM3_bits | GIE);//输入 LPM3
}
int main (空)
{
WDTCTL = WDTPW | WDTHOLD;//停止 WDT
//配置 GPIO
P1DIR |= BIT0;// LED 中断
P1OUT |= BIT0;
P2SEL0 |= BIT0 | BIT1;//将 XT1引脚设置为第二功能
//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~μ A LOCKLPM5;
//时钟系统设置
正确
{
CSCTL7 &=~(XT1OFFG | DCOFFG);//清除 XT1和 DCO 故障标志
SFRIFG1 &=~OFIFG;
}while (SFRIFG1和 OFIFG);//测试振荡器故障标志
__ bis_SR_register (SCG0);//禁用 FLL
CSCTL3 |= SELREF__XT1CLK;//将 XT1设置为 FLL 基准源
CSCTL0 = 0;//清除 DCO 和 MOD 寄存器
CSCTL1 &=~(DCORSEL_7);//首先清除 DCO 频率选择位
CSCTL1 |= DCORSEL_5;//设置 DCO = 16MHz
CSCTL2 = FLLD_0 + 487;// DCOCLKDIV = 16MHz
__delay_cycles (3);
__BIC_SR_register (SCG0);//启用 FLL
while (CSCTL7 &(FLLUNLOCK0 | FLLUNLOCK1));// FLL 已锁定
CSCTL4 = SELMS__DCOCLKDIV | SELM__XT1CLK;//将 XT1 (~32768Hz)设置为 ACLK 源、ACLK = 32768Hz
//默认的 DCOCLKDIV 作为 MCLK 和 SMCLK 源
//计时器设置
TA1CCTL0 = CCIE;// TACCR0中断被启用
TA1CCR0 = 32768;//设置1秒间隔的计数目标
TA1CTL = TASSEL__ACLK | MC__UP;//将时钟源设置为 ACLK、计数模式设置为向上
计数= 0;
while (1)
{
delay_seconds (1);//延迟1秒
///您的代码
}
}
#if defined (__TI_Compiler_version__)|| defined (__IAR_SYSTEMS_ICC__)
#pragma vector = Timer1_A0_vector
__interrupt void Timer1_A0_ISR (void)
#Elif 已定义(_ GNU _)
void __attribute__((interrupt (Timer1_A0_vector)) Timer1_A0_ISR (void)
#else
#错误编译器不受支持!
#endif
{
if (count == 0)
{
P1OUT |= BIT0;
}
否则
{
P1OUT &=~BIT0;
}
计数++;
if (count > 30)
{
计数= 0;
}
}