📄 sysinit.asm
字号:
.global _SYSINIT
.include "x240x.h"
.text
_SYSINIT:
LDP #0
SETC INTM ;关总中断
;配置系统中断
SPLK #02H,IMR ;INT2 INT3 INT5
SPLK #0FFFFH,IFR ;向该位写1清除中断请求
LDP #0E0H
;配置系统时钟
SPLK #000cH,SCSR1 ;CLKOUT=WDCLK,CPUCLK=4*CLKin,EVA,EVB CLK ENABLE
SPLK #000aH,SCSR2 ;这好象是2812芯片要求的,BOOTEN=1,SARAM被映射到
;数据空间,可以不初始化,按复位值
;配置看门狗
SPLK #068H,WDCR ;禁止WDT,这一步很重要
;配置外部总线速度
;SPLK #0038H,WSGR ;外部数据总线速度7分频
;配置串行外围接口(SPI)寄存器
;SPLK #0H,SPICCR
;SPLK #0H,SPICTL
;SPLK #0H,SPISTS
;SPLK #0H,SPIBRR
;SPLK #0H,SPIDAT
;SPLK #0H,SPIPRI
;配置串行通信接口(SCI)寄存器
SPLK #0027H,SCICCR ;奇校验,停止位一位,数据位8位,空闲模式
SPLK #006fH,SCICTL1 ;使能接收错误中断,允许接收、发送
SPLK #01H,SCIHBAUD ;波特率19200bps
SPLK #03H,SCILBAUD
SPLK #00C3H,SCICTL2 ;使能接受发送中断
SPLK #0070H,SCIPRI ;低优先级 INT5
;配置外部中断寄存器
;SPLK #0H,XINT1CR
;SPLK #0H,XINT2CR
LDP #0E1H
;配置I/O控制寄存器
SPLK #0FC0h,MCRA ;配置(PWM1,PWM2,PWM3,PWM4,)PWM5,PWM6
SPLK #0H,MCRB
SPLK #0060H,MCRC
;SPLK #0H,PADATDIR
;SPLK #0H,PBDATDIR
SPLK #0C0C0H,PCDATDIR
;SPLK #0H,PDDATDIR 如果配置成I/O口则要指出数据方向
;SPLK #0H,PEDATDIR
;SPLK #0H,PFDATDIR
;配置ADC模数转换积存器
;SPLK #0H,ADCTRL1
;SPLK #0H,ADCTRL2
;SPLK #0H,MAXCONV
;SPLK #0H,CHSELSEQ1
;SPLK #0H,CHSELSEQ2
;SPLK #0H,CHSELSEQ3
;SPLK #0H,CHSELSEQ4
;SPLK #0H,CALIBRATION
LDP #0E8h
;配置通用定时器-事件管理器A
SPLK #004aH,GPTCONA
SPLK #1,T1CNT ;移相120度
;SPLK #0H,T1CMPR
SPLK #1000,T1PR ;周期寄存器赋初值 开关频率20kHz
;SPLK #0000H,T1CON
;SPLK #0H,T2CNT
;SPLK #400,T2CMPR
;SPLK #800,T2PR ;开关频率25kHz
;SPLK #1082H,T2CON
;配置比较单元寄存器-事件管理器A
SPLK #8000H,COMCONA ;周期和下溢装载
SPLK #0666H,ACTRA ;PWM1,3,5 为高
SPLK #05e8H,DBTCONA ;死区控制0.5us
SPLK #500,CMPR1 ;比较寄存器赋初值
SPLK #500,CMPR2 ;比较寄存器赋初值
SPLK #500,CMPR3 ;比较寄存器赋初值
;配置捕捉和正交编码寄存器-事件管理器A
;SPLK #0H,CAPCONA
;SPLK #0H,CAPFIFOA
;SPLK #0H,CAP1FIFO
;SPLK #0H,CAP2FIFO
;SPLK #0H,CAP3FIFO
;SPLK #0H,CAP1FBOT
;SPLK #0H,CAP2FBOT
;SPLK #0H,CAP3FBOT
;配置事件管理器中断控制寄存器
;事件管理器A
SPLK #0200h,EVAIMRA ;
;SPLK #0004H,EVAIMRB
;SPLK #0H,EVAIMRC
SPLK #0FFFFH,EVAIFRA
;SPLK #0FFFFH,EVAIFRB
;SPLK #0FFFFH,EVAIFRC
;事件管理器B
;SPLK #200H,EVBIMRA
;SPLK #00H,EVBIMRB
;SPLK #0H,EVBIMRC
SPLK #0FFFFH,EVBIFRA
;SPLK #0FFFFH,EVBIFRB
;SPLK #0FFFFH,EVBIFRC
LDP #0EAH
;配置通用定时器-事件管理器B
;SPLK #004aH,GPTCONB
;SPLK #200,T3CNT
;SPLK #0H,T3CMPR
;SPLK #2000,T3PR
;SPLK #0000H,T3CON
;SPLK #0H,T4CNT
;SPLK #0H,T4CMPR
;SPLK #0H,T4PR
;SPLK #0H,T4CON
;配置比较单元寄存器-事件管理器B
;SPLK #8000H,COMCONB
;SPLK #0666H,ACTRB
;SPLK #05e8H,DBTCONB
;SPLK #0H,CMPR4
;SPLK #0H,CMPR5
;SPLK #1000H,CMPR6
;配置捕捉和正交编码寄存器-事件管理器B
;SPLK #0H,CAPCONB
;SPLK #0H,CAPFIFOB
;SPLK #0H,CAP4FIFO
;SPLK #0H,CAP5FIFO
;SPLK #0H,CAP6FIFO
;SPLK #0H,CAP4FBOT
;SPLK #0H,CAP5FBOT
;SPLK #0H,CAP6FBOT
LDP #0E8H
SPLK #0840H,T1CON ;定时器1开始计数
SPLK #8200H,COMCONA ;比较输出
;LDP #0EAH
;SPLK #0840H,T3CON
;SPLK #8200H,COMCONB
CLRC INTM ;开总中断
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -