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.

[参考译文] MSP430G2553:使用中断进行时钟系统编程

Guru**** 2551110 points
Other Parts Discussed in Thread: MSP430G2553

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/591070/msp430g2553-clock-system-programming-using-interrupts

器件型号:MSP430G2553

大家好、

我正在使用  中断方法在 msp430g2553的时钟系统上执行一个程序、但代码没有运行。代码没有任何错误、但没有输出。

此代码附在下面:

#include "msp430g2553.h"

#ifndef TIMER0_A1_vector
#define TIMER0_A1_VECTOR TIMERRA1_VECTOR
#define TIMER0_A0_VECTOR TIMER0_VECTOR
#endif

void main (void)

WDTCTL = WDTPW + WDTHOLD;//看门狗计时器设置

IF (CALBC1_1MHz =0xFF || CALDCO_1MHz =0xFF)

while (1);//如果校准常数被擦除、
}//陷阱 CPU!!

BCSCTL1 = CALBC1_1MHz;//设置范围
DCOCTL = CALDCO_1MHz;//设置 DCO 步长+调制

BCSCTL3 |= LFXT1S_2 + XCAP_3;//时钟系统设置

BCSCTL2 |= SELM_0 + DIVM_3;
IFG1 |=OFIFG;
bis_SR_register (SCG0+SCG1+GIE);




#pragma vector=Port1_vector
_interrupt void port1 (void)

//P1DIR = BIT0;// I/O 设置
//P1OUT = 0;

while (1)

P1OUT = BIT0;// LED 打开
_delay_cycles (100);
P1OUT = 0;// LED 关闭
_delay_cycles (5000);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Abhishek、
    有一个问题、您为什么在 ISR 中放置了 while (1)?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只是为了检查目的。我在没有使用 while (1)的情况下尝试了此程序;在 ISR 中、但仍然没有获得输出。
    您对此问题是否有任何解决方案?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么要设置 OFIFG?

    您有一个端口中断的中断处理程序、但该中断既未配置也未启用。