工具/软件:Code Composer Studio
大家好、
我需要在项目中使用延迟函数。 我已经在 CCS 中创建了一个计时器中断代码。 其内容如下:
#include "msp.h"
int main (void){
WDTCTL = WDTPW | WDTHOLD;
CSKEY = CSKKEY_VAL;
CSCTL0=DCOEN+DCORSEL_3+DCOTUNE_OFS;
CSCTL1=DIVA_0+SELM_3+SELM_3+SELA_2;
CSCLKEN=0x0000030f;
CSKEY = 0;
//配置 GPIO
P1DIR |= BIT0;
P1OUT |= BIT0;
TA0CCTL0 = CCIE;
TA0CCR0 = 32767;
TA0CTL = tassel_1 + MC_1;
SCB->SCR |= SCB_SCR_SLEEPONEXIT_MSK;//从 ISR 退出时启用睡眠
//启用全局中断
_enable_interrupt ();
NVIC_ISER0 = 1 <<(TA0_0_IRQn)& 31);
while (1)
{
_SLEEP();
__no_operation();//用于调试器
}
}
//计时器 A0中断服务例程
void TA0_0_IRQHandler (void){
TA0CCTL0 &=~CCIFG;
P1OUT ^= BIT0;
TA0CCR0 = 62259;
//TA0CCR0 += 0xFFFF;//将偏移添加到 TACCR0
}
使用此代码、我可以使 LED 闪烁。 但我需要10ms、100ms、400ms 等精确延迟 那么、您能告诉我、我必须如何通过配置这些寄存器来创建自定义延迟函数。 如果有公式、请解释、请直接回答。
提前感谢:)