📄 asm.s43
字号:
#include "msp430x22x4.h"
;WDT定时器模式下1秒钟定时
;1秒钟触发看门狗定时中断
;来翻转P1.0
; MSP430F2274
; -----------------
; /|\| XIN|-
; | | |
; --|RST XOUT|-
; | |
; | P1.0|-->LED
NAME main
PUBLIC main
;-----------------------------------------------------------------------------
; MSP430F22x中断向量表
;-----------------------------------------------------------------------------
ORG 0FFFEh
DC16 main
ORG 0FFF4h ;看门狗定时模式的中断向量
DC16 wdt_timer
;------------------------------------------------------------------------------
RSEG CODE ;程序开始
;------------------------------------------------------------------------------
main MOV.W #0600H,SP ;设置堆栈指针
stopWDT MOV.W #WDTPW+WDTHOLD,&WDTCTL ;关看门狗
MOV.B &CALBC1_1MHZ,&BCSCTL1 ;设定DCO为1MHZ
MOV.B &CALDCO_1MHZ,&DCOCTL
MOV.W #WDTPW+WDTTMSEL+WDTSSEL+WDTCNTCL,&WDTCTL;选择定时模式,并选时钟源为ACLK,即定时时间为ACLK/32768(WDTISx=0)
BIC.B #BIT0,&P1OUT
MOV.B #BIT0,&P1DIR ;设置P1.0(led)为输出方向
BIS.B #WDTIE,&IE1 ;使能WDT定时中断
EINT ;开总中断
mainloop
BIS.B #LPM3,SR ;进入LPM3模式,ACLK(WDT时钟源)仍工作
;------------------------------------------------------------------------------
wdt_timer ;看门狗定时中断服务
;------------------------------------------------------------------------------
XOR.B #BIT0,P1OUT ;p1.0翻转
RETI
END main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -