?? lsvpwm.asm
字號:
;================================================================
;編譯開關
scope_Enable .set 1 ;如名
S01_K .SET 400 ;S01計數的最大值=0.1s/250us
.INCLUDE F240.H
.INCLUDE Macro.h
.INCLUDE ScopeREF.h
;***********************向量地址聲明***************************************
.SECT ".VECTORS"
RSVECT B START
INT1 B PHANTOM ;
INT2 B GISR2 ;GISR2包括TIMER1和PDPINT
INT3 B PHANTOM ;INTERRUPT LEVEL 3
INT4 B PHANTOM ;INTERRUPT LEVEL 4
INT5 B SERIAL ;INTERRUPT LEVEL 5
INT6 B PHANTOM ;INTERRUPT LEVEL 6
RESERVED B PHANTOM ;RESERVED
SW_INT8 B PHANTOM ;USER S/W INTERRUPT
SW_INT9 B PHANTOM ;USER S/W INTERRUPT
SW_INT10 B PHANTOM ;USER S/W INTERRUPT
SW_INT11 B PHANTOM ;USER S/W INTERRUPT
SW_INT12 B PHANTOM ;USER S/W INTERRUPT
SW_INT13 B PHANTOM ;USER S/W INTERRUPT
SW_INT14 B PHANTOM ;USER S/W INTERRUPT
SW_INT15 B PHANTOM ;USER S/W INTERRUPT
SW_INT16 B PHANTOM ;USER S/W INTERRUPT
TRAP B PHANTOM ;TRAP VECTOR
NMINT B PHANTOM ;NON-MASKABLE INTERRUPT
EMU_TRAP B PHANTOM ;EMULATOR TRAP
SW_INT20 B PHANTOM ;USER S/W INTERRUPT
SW_INT21 B PHANTOM ;USER S/W INTERRUPT
SW_INT22 B PHANTOM ;USER S/W INTERRUPT
SW_INT23 B PHANTOM ;USER S/W INTERRUPT
;--------------------定義變量---------------------------
;----------------------------------------------------------------
; B0 (DP=4,0200H-027fH)
; (DP=5,027FH-02FFH)
;----------------------------------------------------------------
CMPR1 .EQU 7417h
;******SCOPE專用變量******
TEMP .EQU 0200H ;臨時變量(從不保護)
RunFlag .EQU 0201H ;運行標志,1為運行,0為停機
FailFlag .EQU 0202H ;故障標志,1-過流,2-VDC過壓,3-IPM的FO
RunEnable .EQU 0203H
MFT .EQU 0204H ;端子排輸入值
S01 .EQU 0205H ;用于軟件計時的變量
;********臨時變量*********
;TEMP1 .EQU 0206H
;TEMP2 .EQU 0207H
;TEMP3 .EQU 0208H
;TEMP4 .EQU 0209H
;DP=5(0280H-02FFH)
;*************************
STEP .EQU 0280H ;增量
PERIOD .EQU 0281H ;GPT1周期
MAG_A .EQU 0282H ;幅值
TETA .EQU 0283H ;角度
SINTETA .EQU 0284H ;SIN值 ;出錯,結果不對
RESULT .EQU 0285H ;A*SIN值
;TEMP .EQU 0286H ;
; .EQU 0287H ;
GPR0 .EQU 0288H
;DAC0VAL .EQU 0289H
;DAC1VAL .EQU 028AH
;DAC2VAL .EQU 028BH
;DAC3VAL .EQU 028CH
; .EQU 028DH
; .EQU 028EH
; .EQU 028FH
;---------------------------------------------------------------------
; I/O Mapped EVM Registers
;---------------------------------------------------------------------
DAC0 .set 0000h ;DAC Channel 0 Register
DAC1 .set 0001h ;DAC Channel 1 Register
DAC2 .set 0002h ;DAC Channel 2 Register
DAC3 .set 0003h ;DAC Channel 3 Register
DAC_UPDATE .set 0004h ;DAC Update Register
SWITCHES .set 0008h ;DIP Switch Register
LEDS .set 000Ch ;LEDs Register
;***********************主程序開始****************************
.TEXT
;************************F240初始化模塊開始*****************************
START: LDP #TETA/128
SPLK #0,TETA ;角度偏移量
SPLK #15,STEP
SPLK #200,MAG_A ;250/540*32767=15170,540為最大線電壓
;A:0--540,對應0--32767
SPLK #1000,PERIOD
;---------------------初始化ST0,ST1,IMR,IFR-----------------------------
LDP #00H ;0000H-007FH
SETC INTM ;DISABLE INTERRUPTS
splk #0000H,IMR ;MASK ALL CORE INTERRUPTS
LACC IFR ;READ INTERRUPT FLAGS
SACL IFR ;CLEAR ALL INTERRUPT FLAGS
CLRC SXM ;SUPPRESSES SIGN EXTENSION
CLRC OVM ;RESET OVERFLOW MODE
CLRC CNF ;CONFIG BLOCK B0 TO DATA MEM
SPM 0 ;SUPPRESSES SHIFT ACTION
;------------------------設置CLOCK與PLL--------------------------------
INICLOCKPLL: LDP #0E0H ;7000H-707FH
splk #00BBh,CKCR1 ;CLKIN(OSC)=10MHz,CPUCLK=20MHz
splk #00C3h,CKCR0 ;CLKMD=PLL Enable,SYSCLK=CPUCLK/2
splk #4000H,SYSCR ;0100 0000 0000 0000
;CLKOUT PIN =Digital I/O mode
LDP #00E0h ;DP for addresses 7000h-707Fh
lacc SYSSR
and #69FFh ;and 0110100111111111, clear 15,12,10,9
sacl SYSSR ;可靠的初始化,清非法故障標志
;------------------------關看門狗和設置等待周期------------------------
LDP #0E0H
INIRTICR splk #0007H,RTICR ;DISABLE RTI
INIWDCR splk #006FH,WDCNTR
splk #05555H,WDKEY
splk #0AAAAH,WDKEY
splk #006FH,WDCNTR
SPLK #006FH, WDCR ;DISABLE WD IF VCCP=5V (JP5 IN POS. 2-3)
;Overflow TIME=1s
KICK_DOG ;RESET WATCHDOG
LDP #GPR0/128
SPLK #4H,GPR0 ;SET WAIT STATE GENERATOR FOR:
OUT GPR0,WSGR ;PROGRAM SPACE, 0 WAIT STATES
;DATA SPACE, 0 WAIT STATES
;I/O SPACE, 1 WAIT STATES
;-----------------------------------SCI的初始化-------------------------------
;注意:用戶程序務必參照此段初始化程序
SCI_INIT: LDP #00E0h
splk #0017h, SCICCR ;1 stop bit,disable parity,8 char bits,
;async mode, idle–line protocol
splk #0013h, SCICTL1 ;Enable TX, RX, internal SCICLK,
;Disable RX ERR, SLEEP, TXWAKE
splk #0003, SCICTL2 ;disable RX INT,enable TX INT
splk #0000h, SCIHBAUD
splk #000ah, SCILBAUD ;Baud Rate=115200 b/s (10 MHz SYSCLK)
;splk #0040h, SCILBAUD ;Baud Rate=19200 b/s (10 MHz SYSCLK)
splk #0022h, SCIPC2 ;Enable TXD & RXD pins
splk #0033h, SCICTL1 ;Relinquish SCI from Reset.
splk #0060H,SCIPRI ;RX,TX皆為LOW 優先級
;-----------------------EV中斷初始化-------------------------------------------
INIEV: LDP #0E8H ;DP =>EV REGISTERS,7400H-747FH
INIEVIMRA splk #00000H,EVIMRA ;MASK ALL GROUP A INTERRUPT FLAGS
INIEVIMRB splk #00000H,EVIMRB ;MASK ALL GROUP B INTERRUPT FLAGS
INIEVIMRC splk #00000H,EVIMRC ;MASK ALL GROUP C INTERRUPT FLAGS
INIEVIFRA splk #0FFFFH,EVIFRA ;CLEAR ALL GROUP A INTERRUPT FLAGS
INIEVIFRB splk #0FFFFH,EVIFRB ;CLEAR ALL GROUP B INTERRUPT FLAGS
INIEVIFRC splk #0FFFFH,EVIFRC ;CLEAR ALL GROUP C INTERRUPT FLAGS
INIEVIVRA LACC EVIVRA
INIEVIVRB LACC EVIVRB
INIEVIVRC LACC EVIVRC
;=========================PWM中斷初始化===============================================
;--------------------------清零-------------------------------------------------------
zac
ldp #0E8H
sacl GPTCON ;gptcon=0
sacl T1CNT
sacl T1CMPR
sacl T1PR
sacl T1CON
sacl T2CNT
sacl T2CMPR
sacl T2PR
sacl T2CON
sacl T3CNT
sacl T3CMPR
sacl T3PR
sacl T3CON
sacl COMCON
sacl ACTR
sacl SACTR
sacl DBTCON
sacl CMPR1
sacl CMPR2
sacl CMPR3
sacl SCMPR1
sacl SCMPR2
sacl SCMPR3
sacl CAPCON
sacl CAPFIFO
sacl CAP1FIFO
sacl CAP2FIFO
sacl CAP3FIFO
sacl CAP4FIFO
;-------------------------系統寄存器初始化---------------------------------------------
LDP #PERIOD/128
LACC PERIOD ;PWM 20KHZ ;PERIOD=500
LDP #0E8H
SACL T1PR ;微秒,采樣周期
;SPLK #0666H, ACTR ;禁止 SPACE VECTOR PWM,高有效
;0000 0110 0110 0110
;SPLK #0666H, ACTR ;ACTR IS DOUBLE BUFFERED
splk #0999H,ACTR ;PWM compare actionsn,no space vector
;0000 1001 1001 1001
;splk #0AAAh,ACTR ;1--6高有效
;6,4,2,high 5,3,1,low
;SPLK #0000H, DBTCON ;no DEAD TIME
;SPLK 50EFH,DBTCON ;8us
;SPLK 46EFH,DBTCON ;7us
;SPLK 3CEFH,DBTCON ;6us
;SPLK 32EFH,DBTCON ;5us
;SPLK 28EFH,DBTCON ;4us
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -