MSP430FR5972,CCS v7
您好,我需要帮助在没有ISR的情况下使用计时器生成延迟,但计时器应该在一个程序中使用,这些功能就是
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
MSP430FR5972,CCS v7
您好,我需要帮助在没有ISR的情况下使用计时器生成延迟,但计时器应该在一个程序中使用,这些功能就是
即使我也使用此代码5秒,但不工作(它在4.3 秒左右有效)。代码如下:
#include <MSP4S.h>
#include "stdint.h"
内部主(无效)
{
WDTCTL = WDTPW | WDTHOLD;//停止WDT
//配置GPIO
P1DIR || BIT0;
P1OUT |= BIT0;
//禁用GPIO开机默认高阻抗模式以激活
//以前配置的端口设置
PM5CTL0 &=~LOCKLPM2;
TA0CCTL0 = CCIE;//已启用TACR0中断
TA0CCR0 = 2.0479万;
TA0CTL = tassel_1 | ID_3 | MC_2;// ACLK,分隔符1,连续模式,清除
__bis_sr_register(LPM0_bits + GIE);//输入带中断的LPM0
__no_operation();//用于调试器
}
// Timer0_A0中断服务例程
#if defined(__TI_Compiler_version__)|| defined(__IAR_SYSTEMS _ICC__)
#pragma vector = TIMER0_A0_vector
__interrupt void Timer0_A0_ISR (void)
#Elif已定义(__GMNU__)
void __attribute__((interrupt (TIMER0_A0_vector))) Timer0_A0_ISR (void)
#否则
错误编译器不受支持!
#endif
{
TA0CCR0 +=2.0479万;//添加另一秒
P1OUT ^= P1OUT;//切换LED
}
PLZ回复
用户指南的3.2 部分说明:
… CS模块默认配置为:
LFXT被选为LFXTCLK的振荡器源。 为ACLK (SELAx =0)选择了LFXTCLK,且ACLK未分割(DIVAx =0)。[…] 但禁用LFXT。 […] 故障控制逻辑会立即导致LFMODCLK找到ACLK
LFMODCLK为5 MHz/128=39 kHz,这将导致4.2 延迟,这正是您所看到的。 (而MODCLK的开头不太准确。)
如果要使用32.768 kHz时钟,必须正确启动晶体。 (有关如何执行此操作,请参见示例程序。)