?? macro915.h.bak
字號:
;----------------------------------------------------------
STOP .MACRO ;停機模塊
;LDP ??? ;7080H-70FFH
;LACL ???
;AND ???
;1111111110111111B
;SACL ??? ;???=/DISDRIVE(DP=0E1H)
LDP #0E8H
LACL COMCONA
AND #1111110111111111B
SACL COMCONA ;禁止PWM輸出,COMCONA.9=0,PWM輸出引腳處于高阻態,即禁止
LDP #0E8H
SPLK #0,CMPR1 ;設置PWM占空比
SPLK #0,CMPR2 ;設置PWM占空比
LDP #4 ;200H-027FH
SPLK #0,RunFlag ;運行標志置0,停機
.ENDM
;--------------------------------------------------------------------
RUN: .MACRO ;運行宏
LDP #4 ;200H-027FH
SPLK #1,RunFlag
LDP #0E1H ;7080H-70FFH
LACL ??? ;PADATDIR.3(IOPA3)=/DISDRIVE(DP=0E1H)
OR ???
SACL ??? ;PADATDIR.3(IOPA3)=/DISDRIVE(DP=0E1H)
LDP #0E1H ;7080H-70FFH
LACC #1111111111111011B
AND PADATDIR
SACL PADATDIR ;PADATDIR.2(IOPA2)=UNCLOCK
LACC #100B
OR PADATDIR
SACL PADATDIR ;將UNLOCK置低再置高???
LDP #0E8H
LACL COMCONA
OR #1000000000B
SACL COMCONA ;允許PWM輸出,COMCONA.9=1
.ENDM
;----------------------------------------------------------------------------------
ALARM .MACRO ;ALARM模塊
LDP #0E1H ;7080H-70FFH
LACL PFDATDIR ;PFDATDIR.0(IOPF0)=ALARM
OR #00000001B
SACL PFDATDIR ;PFDATDIR.0(IOPF0)=ALARM,IOPF0輸出為高電平代表發出警告
.ENDM
;-----------------------------------------------------------------------
DISALARM: .MACRO ;DISALARM模塊
LDP #0E1H ;7080H-70FFH
LACL PFDATDIR ;PFDATDIR.0(IOPF0)=ALARM
AND #1111111111111110B
SACL PFDATDIR ;PFDATDIR.0(IOPF0)=ALARM
.ENDM
;------------------------------------------------------------------------
SHORT: .MACRO
LDP #0E1H
LACC PFDATDIR
OR #00000100B ;PFDATDIR.2(IOPF2)=SHORT輸出高電平表示接入母線充電電容
SACL PFDATDIR
.ENDM
;-----------------------------------------------------------------------
DISSHORT: .MACRO
LDP #0E1H
LACC PFDATDIR
AND #1111111111111011B ;PFDATDIR.2(IOPF2),輸出低電平表示母線充電電容不接入
SACL PFDATDIR
.ENDM
;========================================================================
BREAK: .MACRO
LDP #0E1H
LACC PFDATDIR
OR #00001000B ;PFDATDIR.3(IOPF3)=BREAK輸出高電平表示接入制動電阻
SACL PFDATDIR
.ENDM
;========================================================================
DISBREAK: .MACRO
LDP #0E1H
LACC PFDATDIR
AND #1111111111110111B ;PFDATDIR.3(IOPF3),輸出低電平表示斷開制動電阻
SACL PFDATDIR
.ENDM
;========================================================================
FAN: .MACRO
LDP #0E1H
LACC PCDATDIR
OR #10000000B ;PCDATDIR.7(IOPC7)=FAN,輸出高電平表示采用冷卻風扇運行
SACL PCDATDIR
.ENDM
;========================================================================
DISFAN: .MACRO
LDP #0E1H
LACC PCDATDIR
AND #1111111101111111B ;PCDATDIR.7(IOPC7),輸出低電平表示采用風扇運行
SACL PCDATDIR
.ENDM
;========================================================================
Y1ON .MACRO
LDP #0E1H
LACC PCDATDIR
OR #01000000B ;PCDATDIR.6(IOPC6)=RUN(Y1),輸出高電平變頻器運行
SACL PCDATDIR
.ENDM
;========================================================================
Y1OFF .MACRO
LDP #0E1H
LACC PCDATDIR
AND #1111111110111111B ;PCDATDIR.6(IOPC6)=RUN(Y1),輸出低電平變頻器停止
SACL PCDATDIR
.ENDM
;--------------------------------------------------------------------
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.
;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
;SPLK #0FFFFH,IFR ;清所有中斷標志
CLRC INTM ;開總中斷
.ENDM
;--------------------------------------------------------------------
;=====================================================================
; EVA模塊的初始化程序
;=====================================================================
EVAINI .MACRO
;IO初始化
LDP #0E1H
LACL MCRA
OR #0FFFH
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 #8842H,T1CON ;單個通用定時器控制寄存器
;SPLK #1000100001000010b,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 + -