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.

[参考译文] MSP430F5529:在本例中如何使 LED 闪烁?

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/993581/msp430f5529-how-to-make-a-led-blink-in-this-case

器件型号:MSP430F5529

我希望 LED3保持亮起7秒、然后在1秒振荡的情况下闪烁三次、然后移至 LED4。 我已经让 LED3保持7秒、然后转到 LED4、但我仍然不知道如何使它闪烁这三次。 (它是交通信号灯)。

代码:

;------------------------------------------------------------------
;这里是主循环
;------------------------------------------------------------------
        MOV.w #0x0001、R5
        MOV.w #0x001F、&P3DIR

        bisw #MC0|MC1、&TA0CTL;定时器递增/递减
        BIS.w #TACLR、&TA0CTL;清除计时器 TAR。
        BIS.w #tassel__ACLK、&TA0CTL;使用 ACLK (32 KHz)。
        BIS.w #ID0|ID1、&TA0CTL;8分频。
        BIC.w #TAIFG、&TA0CTL;清除中断标志。
        BIS.w #TAIE、&TA0CTL;启用定时器 TA0中断。
        MOV.w #0x0001、&TA0CCR0

        NOP
        BIS.w #LPM3|GIE、SR
        NOP
                                                ;中断。
TA0_ISR
        cmp.w #TA0IV_TAIFG、&TA0IV;检查定时器是否溢出。
        jnz not _correct_flag

        CMP.w #0x0001、R5
        JZ LED1;溢出。
        CMP.w #0x0002、R5
        JZ LED2
        CMP.w #0x0003、R5
        JZ LED3
        CMP.w #0x0004、R5
        JZ led4.

LED1
        MOV.b #0x0001、&P3OUT;0000 0001 = BIT0
        BIS.b #BIT1、&P3OUT
        包含 R5
        MOV.w #0x5000、&TA0CCR0
        TI
LED2
        MOV.b #0x0002、&P3OUT;0000 0010 = BIT1
        包含 R5
        MOV.w #0x5000、&TA0CCR0
        TI
LED3
        MOV.w #0x0004、&P3OUT;0000 0100 = BIT2
        包含 R5
        MOV.w #0x3800、&TA0CCR0
        TI

LED4.
        MOV.b #0x0008、&P3OUT;0000 10000 = BIT3
        MOV.w #0x0001、R5
        MOV.w #0x5000、&TA0CCR0
        TI


        不正确的标志
        BIC.w #TAIFG、&TA0CTL;这是 ISR。 清除中断标志
        TI

;------------------------------------------------------------------
;堆栈指针定义
;------------------------------------------------------------------
.global __stack_end
.sect .stack

;------------------------------------------------------------------
;中断矢量
;------------------------------------------------------------------
.sect ".reset"
短路复位
.sect ".int52"
.short TA0_ISR

.end

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

    1.对于 Blink、只需将   P3OUT 中的相关位设置为0、然后使用计时器生成延迟。

    2.将  P3OUT 中的相关位设置为0、然后使用计时器生成延迟。

    您需要执行步骤1和2 3次。