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.

[参考译文] MSP430FR2111:MSP430定时器中断

Guru**** 2616675 points

Other Parts Discussed in Thread: MSP430FR2111

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/671890/msp430fr2111-msp430-timer-interrupt

器件型号:MSP430FR2111

您好!  

我正在尝试使用 MSP430FR2111的16位 Timer0_B3生成一个简单的计时器。 想法是生成中断并切换 ISR 内的引脚。 我缺少一些内容、因为代码无法正常工作。 这里是我的代码。

#include

//#define PERIOD 50000;  //要在 CCRx 寄存器中存储和计数的值

void initSlepTimer();

void main (void)

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

P1OUT &= 0x00;//关闭所有内容
P1DIR &= 0x00;

P2OUT &= 0x00;
P2DIR &= 0x00;

PM5CTL0 &=~LOCKLPM5;//禁用高阻抗状态上的 GPIO 电源

P1DIR |= BIT4;//将 P1.4设置为输出
_enable_interrupt ();

initSlepTimer();


空 initSlepTimer()

TB0CCR0 = 50000;//向上计数到 TB0CCR0中存储的值
TB0CCTL0 = CCIE;//CCR0中断被启用
TB0CTL = TBSSEL_ACLK | MC__UP | TBCLR;//选择 ACLK、向上计数模式、清除 TBR 以开始计数


#pragma vector=TIMER0_B0_VECTOR
_interrupt void TIMER0_B0_ISR (void)

P1OUT |= BIT4;//在中断时切换 P1.4

我看不到 P1.4切换。 有什么想法吗?

谢谢、
Ganesan M.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于启动器、您没有编写用于切换 P1.4的代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Danny F、

    感谢您的回复。 这是我要切换的代码。 在 ISR 内部、


    #pragma vector=TIMER0_B0_VECTOR
    _interrupt void TIMER0_B0_ISR (void)

    P1OUT ^= BIT4; //在中断时切换 P1.4


    那有什么问题吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    "有什么问题吗?"

    工作正常吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、它现在可以工作了。 我错过了 main 内的 while 1()循环,因此程序在我可以在示波器上捕获它之前已经完成了执行。 计时器中断现在工作。 谢谢!