📄 asm.s43
字号:
#include "msp430x22x4.h"
;此程序将Timer_A设置为增计数模式,时钟源为SMCLK=32768*32,
;输出模式设置为OUTMOD_7(Rset/Set)设CCR0=512,CCR1=384,CCR2=128
;既PWM周期为512/(32768*32),
;TA1输出占空比为384:(512-384)=2:1
;TA2输出占空比为128:(512-128)=1:2
;用显波器来观察P1.2,P1.3的输出波形。
; MSP430F2274
; -----------------
; /|\| XIN|-
; | | |
; --|RST XOUT|-
; | |
; | P1.2|-->TA1
; | P1.3|-->TA2
NAME main
PUBLIC main
;-----------------------------------------------------------------------------
; MSP430F22x中断向量表
;-----------------------------------------------------------------------------
ORG 0FFFEh
DC16 main
;------------------------------------------------------------------------------
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
setupTA MOV.W #TASSEL1+TACLR,&TACTL ;SMCLK为时钟源,清TAR
setupC0 MOV.W #512,&CCR0 ;设定PWM周期
setupC1 MOV.W #OUTMOD_7,&CCTL1 ;CCR1输出为reset/set模式
MOV.W #384,&CCR1 ;CCR1的PWM占空比设定
setupC2 MOV.W #OUTMOD_7,&CCTL2 ;CCR2输出为reset/set模式
MOV.W #128,&CCR2 ;CCR2的PWM占空比设定
setupP1 BIS.B #BIT2,&P1DIR ;P1.2输出方向
BIS.B #BIT2,&P1SEL ;P1.2输出TA1
BIS.B #BIT3,&P1DIR ;P1.3输出方向
BIS.B #BIT3,&P1SEL ;P1.3输出TA2
BIS.W #MC0,&TACTL ;启动定时器A增计数模式
mainloop
BIS.W #CPUOFF,SR ;CPU关闭
NOP
END main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -