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.

[参考译文] CCS/MSP430F5529:如何处理 LED 通过中断闪烁的频率?

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/585801/ccs-msp430f5529-how-can-i-handle-the-frequency-of-blinking-led-by-interrupt

器件型号:MSP430F5529

工具/软件:Code Composer Studio

大家好,我的代码有问题,如下所示。

我想这样做:

如果我按下开关、LED 闪烁频率将降低。 当我反复推它时、它也会随着推动而减小。

我使用中断和计时器 A 来实现它。  

当我运行时、它反复闪烁、但没有改变频率。  

我应该在哪里解决??

void main (void){
_bis_SR_register (GIE);//中断

while (1)

P1OUT ^= BIT7;//LED 切换

if (button_cnt=0)
_DELAY_CYCLES (1000);

否则、如果(button_cnt=1)
_DELAY_CYCLES (100000);



//计时器中断服务例程
#pragma vector=TIMER0_A0_VECTOR
_interrupt void TIMER0_A0_ISR (void)

CNT++;
if (cnt > 1000){
CNT = 0;
P1OUT ^= BIT0;


#pragma vector=Port1_vector
_interrupt void Port_1 (void)

button_cnt++;
button_cnt = button_cnt %4;

P1IFG &=~BIT4;//IFG 被清零

  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Lucy、
    看起来您尚未共享完整代码、代码中存在一些问题。 您正在清除 ISR 中的 P1IFG 位7,这意味着您使用 P1.7作为按钮,但在主代码中,您正在补充 P1.7作为 LED 闪烁的输出.... 也无法将您的时间代码与上述功能链接...

    此致、
    Vikas Chola