📄 macro915.h
字号:
;--------------------------------------------------------------------
Store1 .macro ;保护现场模块1
MAR *,AR1
MAR *+
SST #1,*+
SST #0,*+
SACH *+
SACL *+
PAC
MPYK #1
SPL *+
SACH *+
SACL *+
SAR AR4,*+ ;for scope
SAR AR2,* ;for scope
.endm
;--------------------------------------------------------------------
Restore1 .macro ;恢复现场模块1
MAR *,AR1
lar AR2,*- ;for scope
lar AR4,*- ;for scope
LT *-
MPYK #1
LPH *-
LT *-
LACl *-
ADD *-,16
LST #0,*-
LST #1,*-
.endm
;===========================================================
Store3 .macro
MAR *,AR1
MAR *+
SST #1,*+
SST #0, *+
SACH *+
SACL *+
SAR AR2,*+ ;for scope
SAR AR4,* ;for scope
.endm
;===========================================================
Restore3 .macro
MAR *,AR1
lar AR4,*- ;for scope
lar AR2,*- ;for scope
LACL *-
ADDH *-
LST #0, *-
LST #1, *-
.endm
;--------------------------------------------------------------------
KICK_DOG .macro
LDP #0E0H
SPLK #05555H,WDKEY
SPLK #0AAAAH,WDKEY
LDP #0
.ENDM
;=====================================================================
; /*---系统初始化程序*/
;=====================================================================
CPUINI .MACRO
LDP #0
SETC INTM
CLRC SXM ;Clear Sign Extension Mode
CLRC OVM ;Reset Overflow Mode
CLRC CNF ;Config Block B0 to Data mem.
SPLK #0FFFFH,IFR ;Disable interrupts during initialization.
LDP #0E0H
SPLK #02FDH,SCSR1 ;CLKIN=15M,CLKOUT=30M
;SPLK #0000001011111101b,SCSR1 ;2fd Enable clock to ADC,SCI,EVA module
;||||||||||||||||
;fedcba9876543210
;bit f: 0 Reserved
;bit e: 0 CLKOUT 引脚输出 CPU Clock
;bit d-c: 00 cpu 功耗模式选择
;bit b-9: 001 锁相环时钟选择倍频15MHz*2=30MHz
;bit 8: 0 Reserved
;bit 7: 1 ADC clock enabled
;bit 6: 1 SCI clock enabled
;bit 5: 1 SPI clock enabled
;bit 4: 1 CAN clock enabled
;bit 3: 1 EVB clock enabled
;bit 2: 1 EVA clock enabled
;bit 1: 0 Reserved
;bit 0: 1 无效地址检测
;LACC SCSR2
;OR #00101010B
;AND #00101110B
; ;||||||||
; ;00543210
; ;bit 7: 0 Reserved
; ;bit 6: 0 输入限定器锁存时间至少5个时钟周期长
; ;bit 5: 1 Enable WD
; ;bit 4: 0 XMIF外部存储器正常工作模式
; ;bit 3: 1 禁止引导rom
; ;bit 2: 1/0 程序地址映射到片外
; ;bit 1-0: 10 SARAM 被映射到片内程序和数据空间
;SACL SCSR2
;SPLK #08001H,XINT1CR
;SPLK #08001H,XINT1CR
SPLK #06FH,WDCR ;禁止WDT
LDP #0H
SPLK #0013H,IMR ;使能INT1,INT2,INT5
CLRC INTM ;开总中断
.ENDM
;--------------------------------------------------------------------
;=====================================================================
; EVA模块的初始化程序
;=====================================================================
EVAINI .MACRO
;IO初始化
LDP #0E1H
LACL MCRA
OR #1FFFH
SACL MCRA ;TIME1比较输出,pwm口使能
;SPLK #0000111111111111b,MCRA ;TIME1比较输出,pwm口使能
;||||||||||||||||
;fedcba9876543210
;bit f-c: 0 IOPB7-IOPB4
;bit b-6: 1 PWM6-PWM1
;bit 5: 1 CAP3(PGA)
;bit 4: 1 CAP2/QEP2(PGB)
;bit 3: 1 CAP1/QEP1(PGC)
;bit 2-0: 1 XINT1,SCIRXD,SCITXD
;不用设置PADATDIR,因为A端口均为基本功能,不是一般IO口
LACL PBDATDIR
AND #3FFFH
SACL PBDATDIR
;SPLK #0011111111111111,PBDATDIR
;||||||||||||||||
;fedcba9876543210
;bit f: 0 IOPB7 input,read high(Two_P)
;bit e: 0 IOPB6 input,read high(JOG)
;bit d: 1 IOPB5 output,high(FPM)
;bit c: 1 IOPB4 output,high(FAM)
;others: 1
SPLK #0FF03H,MCRB
;SPLK #1111111100000011B,MCRB
;||||||||||||||||
;fedcba9876543210
;bit f-9: 1 保留位
;bit 8: 1 XINT2/ADCSOC
;bit 7-2: 0 IOPC7-IOPC2为一般I/O口
;bit 1-0: 11 BIO,W/R 这两位设成11是因为硬件上这两个管脚接了线,默认为BIO,W/R功能
SPLK #0F8F8H,PCDATDIR
;SPLK #1111100011111000B,PCDATDIR
;||||||||||||||||
;fedcba9876543210
;bit f: 1 IOPC7 output(FAN)
;bit e: 1 IOPC6 output(RUN)
;bit d: 1 IOPC5 output(EEPROMCS)
;bit c: 1 IOPC4 output(EEPROMCLK)
;bit b: 1 IOPC3 output(EEPROMDI)
;bit a: 0 IOPC2 input (EEPROMDO)
;bit 9-8: 0
;bit 7-2: 1 HIGH
;others: 0 LOW
SPLK #8000H,MCRC
;SPLK #1000000000000000,MCRC
;||||||||||||||||
;fedcba9876543210
;bit f: 1 remain
;bit e-0: 0 IOPE0-IOPE7,IOPF0-IOPF6
SPLK #00FFH,PEDATDIR
;SPLK #0000000011111111B,PEDATDIR
;||||||||||||||||
;fedcba9876543210
;bit f: 0 IOPE7,input(REV)
;bit e: 0 IOPE6,input(FWR)
;bit d: 0 IOPE5,input(HLD)
;bit c: 0 IOPE4,input(ACC2)
;bit b: 0 IOPE3,input(ACC1)
;bit a: 0 IOPE2,input(SP3)
;bit 9: 0 IOPE1,input(SP2)
;bit 8: 0 IOPE0,input(SP1)
;bit 7-0: 1 read high
SPLK #0FFFFH,PFDATDIR
;SPLK #1111111111111111B,PFDATDIR
;||||||||||||||||
;fedcba9876543210
;bit f: 1 remain
;bit e: 1 IOPF6,output(C/1)
;bit d: 1 IOPF5,output(B/1)
;bit c: 1 IOPF4,output(A/1)
;bit b: 1 IOPF3,output(BREAK)
;bit a: 1 IOPF2,output(SHORT)
;bit 9: 1 IOPF1,output(SPEED)
;bit 8: 1 IOPF0,output(TA,TB,TC)
;bit 7-0: 1 high
;IO初始化完毕
LDP #0E8H
SPLK #0842H,T1CON ;单个通用定时器控制寄存器
;SPLK #0000100001000010b,T1CON ;SET TIMER1
;||||||||||||||||
;fedcba9876543210
;bit f-e: 10 操作不受仿真器挂起影响
;bit d: 0 reserved
;bit c-b: 01 连续增/减计数模式
;bit a-8: 000 输入时钟预分频1
;bit 7: 0 定时器2、4使用自身周期寄存器
;bit 6: 1 使能定时器操作
;bit 5-4: 00 使用内部cpu时钟
;bit 3-2: 00 定时器比较寄存器重载条件为当计数值为0时
;bit 1: 1 使能定时器比较操作
;bit 0: 0 使用自身的周期寄存器
SPLK #0CAH,GPTCONA ;全局通用定时器控制寄存器
;SPLK #0000000011001010b,GPTCONA;
;||||||||||||||||
;fedcba9876543210
;bit f: 0 reserved
;bit e: 0 T2 减计数
;bit d: 0 T1 减计数
;bit c-b: 00 reserved
;bit a-9: 00 T2无事件启动ADC
;bit 8-7: 01 T1下溢事件启动ADC
;bit 6: 1 使能所有通用寄存器比较输出
;bit 5-4: 00 reserved
;bit 3-2: 10 T2 比较输出高有效
;bit 1-0: 10 T1 比较输出高有效
SPLK #8200H,COMCONA ;比较控制寄存器
;SPLK #1000001000000000b,COMCONA ;设置比较模式
;||||||||||||||||
;fedcba9876543210
;bit f: 1 使能比较操作
;bit e-d: 00 T1CNT=0(下溢)重载CMPRx(比较寄存器)
;bit c: 0 禁止空间矢量模式
;bit b-a: 00 ACTRLD1/ACTRLD0.方式控制寄存器重载条件为下溢
;bit 9: 0 PWM输出禁止
;bit 8: 0 PDPINTA状态位
;bit 7-0: 000000000 reserved
SPLK #0666H,ACTRA ;比较方式控制寄存器
;SPLK #00000100110011001b,ACTRA ;Set PWM output mode
;||||||||||||||||
;fedcba9876543210
;bit f: 0 SVPWM旋转方向(正向CCW)
;bit e-c: 000 基本矢量位
;bit b-a: 10 Set PWM6 to active high
;bit 9-8: 01 Set PWM5 to active low
;bit 7-6: 10 Set PWM4 to active high
;bit 5-4: 01 Set PWM3 to active low
;bit 3-2: 10 Set PWM2 to active high
;bit 1-0: 01 Set PWM1 to active low
SPLK #0CECH,DBTCONA ;死区控制寄存器,死区时间为3.2uS
;SPLK #0000110011101100b,DBTCONA ;死区时间3.2uS
;||||||||||||||||
;fedcba9876543210 0CECH
;bit f-c: 0000 reserved
;bit b-8: 1100 死区时间周期为12(死区定时器1,2,3的周期为12)
;bit 7: 1 死区定时器3使能
;bit 6: 1 死区定时器2使能
;bit 5: 1 死区定时器1使能
;bit 4-2: 011 死区定时器预分频为8
;bit 1-0: 00 Reserved
SPLK #0FFFFH,EVAIFRA ;清除中断标志
SPLK #0201H,EVAIMRA
;SPLK #0000001000000001b,EVAIMRA ;T1中断下溢使能,功率驱动
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -