bokee.net

电子/电气工程师博客

正文 更多文章

TMS320C2000系列DSP 寄存器及初始化

                           TMS320C2000系列DSP 寄存器及初始化

                                               徐丽红   王佰营

     TMS320LF240X系列DSP使用时,在掌握了其工作原理和过程之后,就要熟练使用DSP自带的一些资源如:IO口、DSRM、SRAM、EVA、,EVB、SCI、SPI、ADC和WD等等;对这些资源的使用很重要的一点就是对其合理配置和初始化,初始化的关键就是对其相关寄存器的设置,设置寄存器必须了解各位的含义,记住每位的含义是不大现实的;为此,我们专门设计了DSP初始化子程序,注明每个模块所用到的寄存器以及每位的含义,以方便设计。

;Init_DSP.asm
      .text
;----------------------------------------------------------
; function: Init DSP  DSP初始化子程序
; input:  ------
; output:  ------
; usege:  acc
;==========================================================
DSP_Init:
;==========================================================
; DSP系统初始化
;----------------------------------------------------------
;ST0------
;  15~~13 12 11  10   9    8~~0
;ST0  ARP OV OVM   1  INTM DP

;  15~13 12 11  10   9  8~5   4   3~2 1~0
;ST1  ARB CNF TC SXM   C   1    XF 1 PM
; ARB---辅助寄存器指针缓冲器:当ARP被加载到ST0,除了使用LST指令外,原有的
;    ARP值被复制到ARB中;当通过LST#1指令加载ARB时,也把相同的ARB
;    值复制到ARP ;
; ARP----辅助寄存器指针:ARP选择间接寻址时当前的辅助寄存器AR;当ARP被加载
;    时,原有的ARP值被复制 到ARB寄存器中;在间接寻址时,ARP可由存储器
;    相关指令改变,也可由LARP,MAR,和LST指令改 变;当执行LST#1指令
;    时,ARP也可加载每ARB相同的值                                            
; C----  进位位:此位在加法结果产生进位时被置为1,或在减法结果产生借位时被清0
;    否则,除了执行带有16 位移位的ADD或SUB指令外,C在加法后被清除或在减
;    法后被设置;在ADD或USB指令时,ADD仅可对进位位进行置位而SUB仅可
;    对进位位进行清除,而不会对进位位产生其他影响;移1位和循环指令也可影响
;    进位位C,以及SETC、CLRC和LST指令也可影响C;条件转移、调用和返回
;    指令可以根据C的状态进行执行;复位时C被置1
; CNF----片内DARAM配置位:若CNF=0,可配置的双口RAM区被映射到数据存储空
;     间;若CNF=I,可配置的双口RAM区被映射到程序存储空间;CNF位可通过
;     SETC CNF,CLRC CNF和LST指令修改;R/S/复位时CNF置为0  
; DP----  数据存储器页指针:9位的DP寄存器与一个指令字的低七位一起形成一个16
;     位的直接寻址地址
; INTM---中断模式位:当INTM被置为0时,所有的未屏蔽中断使能;当它被置1,
;   所有可屏蔽中断禁止;
; OV----  溢出标志位:该位保存一个被锁存的值,用以指示CALU中是否有溢出发生;
;   一旦发生溢出,OV位保持为1直到下列条件中的一个发生时才能被清除
; OVM----溢出方式位:当OVM=0时,累加器中结果正常溢出;当OVM=1时,根据
;   遇到溢出的情况,累加器被设置为它的最大正值或负值;SETC指令和
;   CLRC指令分别对该位进行置位和复位;
; PM----乘积移位方式:
;   若PM=00,乘法器的32位乘积结果不移位直接装入CALU;
;   若PM=01,PREG输出左移1位后装入CALU,最低位LSB以0填充;
;   若PM=10,PREG输出左移4位后装入CALU,最低位LSB以0填充;
;   若PM=11,时PREG输出进行符号扩展右移六位
; SXM----符号扩展方式位:当SXM一1时,数据通过定标移位器传送到累加器时将产
;   生符号扩展;SXM=0将抑制符号扩展;SXM位对某些指令没有影响;
; TC---- 测试/控制标志位:在下述情况之一,TC位被置1:由BIT或BITT指令测
;   试的位为1;当利用NORM指令测试时,累加器的两个最高有效位"异或"
;   功能为真;条件转移、调用和返回指令可根据TC位的条件来执行;
;   BIT、BITT、CMPR、LST和NORM指令影响TC位
; XF----  XF引脚状态位:该位决定XF引脚的状态;SETCXF指令可对位XF进行置位,
;   而CLRCXF指令可对其进行清0;复位时XF置1

;SCSR1------系统控制和状态寄存器1---地址7018H
; D15---保留位
; D14---CLKSRC。CLKOUT引脚源选择位
;  0 CLKOUT引脚输出CPU时钟
;  1 CLKOUT 引脚输出WDCLK时钟
; D13---12 LPM(1:0)。低功耗模式选择位
;  00 CPU 进入IDLE1(LPM0)
;  01 CPU 进入IDLE2(LPM1)
;  1x   CPU 进入HALT(LPM2)
; D11-9---PLL时钟预定标选择位,这三位对输入时钟选择PLL倍频系数。
;  s CLKPS1 CLIPS0 系统时钟频率
;  0  0  0  4*fin
;  0  0  1  2*fin
;  0  1  0  1.33*fin
;  0  1  1  1*fin
;  1  0  0  0.8*fin
;  1  0  1  0.66*fin
;  1  1  0  0.57*fin
;  1  1  1  0.5*fin
; D8---保留位
; D7---ADC CLKEN。ADC模块时钟使能控制位。
;  0 禁止ADC模块的时钟(即:关断ADC模块以节约能量)
;  1 使能ADC模块的时钟,且正常运行
; D6---SCI CLKEN。SCI模块时钟使能控制位。
;  0 禁止SCI模块的时钟(即:关断SCI模块以节约能量)
;  1 使能SCI模块的时钟,且正常运行
; D5---SPI CLKEN。SPI模块时钟使能控制位。
;  0 禁止SPI模块的时钟(即:关断SPI模块以节约能量)
;  1 使能SPI模块的时钟,且正常运行
; D4---CAN CLKEN。CAN模块时钟使能控制位。
;  0 禁止CAN模块的时钟(即:关断CAN模块以节约能量)
;  1 使能CAN模块的时钟,且正常运行
; D3---EVB CLKEN。EVB模块时钟使能控制位。
;  0 禁止EVB模块的时钟(即:关断EVB模块以节约能量)
;  1 使能EVB模块的时钟,且正常运行
; D2---EVA CLKEN。EVA模块时钟使能控制位。
;  0 禁止EVA模块的时钟(即:关断EVA模块以节约能量)
;  1 使能EVA模块的时钟,且正常运行
; D1---保留位
; D0---ILLADR位。无效地址检测位。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

;SCSR2------系统控制和状态寄存器2---7019h
; D15-7:保留位
; D6---I/P QUAL,时钟输入限定,它限定输入到LF240x
;  的CAP1-6、XINT1-2、ADCSOC、PDPINTA*/
;  PDPINTB*引脚上的最小脉冲宽度。脉冲宽度只有达到 这个宽度之后,内部的输入状态才会改变。
;  0-锁存脉冲至少需要5个时钟周期;
;  1-锁存脉冲至少需要11个时钟周期。 如这些引脚作I/O使用,则不使用输入时钟限定电路。
; D5---WD保护位,该位可用来禁止WD工作。该位是-
;  个只能清除的位,复位后=1。通过向该位写1对其 清0。
;  0-保护WD,防止WD被软件禁止。
;  1-复位时的默认值,禁止WD工作。
; D4---XMIF HI-Z。该位控制外部存储器接口信号(XMIF)。
;  0-所有XMIF信号为正常驱动模式(非高阻态)。
;  1-所有XMIF信号处于高阻态。 注意:该位仅对LF2407/ LF2407A型号有效,对其它
;  型号为保留位
; D3---(使能位)。这位反映了BOOTEN*引脚在复位时的状态。
;  0-使能引导ROM。地址0000h-00FFh被片内引导 ROM块占用。禁止用FLash存储器。
;  1-禁止引导ROM。LF2407片内Flash程序存储器映 射地址范围为0000h-7FFFh。
; D2---MP/MC* (微处理器/微控制器选择)。
;  0:DSP设置为微控制器方式,片内FLASH映射到程序存 储器空间,地址为0000h-7FFFh。
;  1:DSP设置为微处理器方式,程序空间0000h-7FFFh被
; 映射到片外程序存储器空间(必须外扩外部程序存储 器)
; D1-0---SARAM的程序/数据空间选择
;  00-地址空间不被映射,该空间被分配到外部存 储器
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;IMR------中断屏蔽寄存器
; D15~6 保留位。这些位读出时始终为0。
; D5---INT6 mask中断6的屏蔽位。
;  0 中断INT6级被屏蔽
;  1 中断INT6级被使能
; D4---INT5 mask中断5的屏蔽位。。
;  0 中断INT5级被屏蔽
;  1 中断INT5级被使能
; D3---INT4 mask中断4的屏蔽位。
;  0 中断INT4级被屏蔽
;  1 中断INT4级被使能
; D2---INT3 mask中断3的屏蔽位。
;  0 中断INT3级被屏蔽
;  1 中断INT3级被使能
; D1---INT2 mask中断2的屏蔽位。
;  0 中断INT2级被屏蔽
;  1 中断INT2级被使能
; D0---INT1 mask中断1的屏蔽位。
;  0 中断INT1级被屏蔽
;  1 中断INT1级被使能
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;IFR------中断标志寄存器
; D15~6 保留位。这些位读出时始终为0。
; D5---INT6 flag中断6标志位。该位用作连至第6级中断INT6的所有中断标志。
;  0 无INT6级的中断挂起
;  1 至少一个INT6级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。
; D4---INT5 FLAG 中断5标志位。该位用作连至第5级中断INT5的所有中断标志。
;  0 无INT5级的中断挂起
;  1 至少一个INT5级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。
; D3---INT4 FLAG 中断4标志位。该位用作连至第4级中断INT4的所有中断标志。
;  0 无INT4级的中断挂起
;  1 至少一个INT4级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。
; D2---INT3 FLAG 中断3标志位。该位用作连至第3级中断INT3的所有中断标志。
;  0 无INT3级的中断挂起
;  1 至少一个INT3级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。
; D1---INT2 FLAG 中断2标志位。该位用作连至第2级中断INT2的所有中断标志。
;  0 无INT2级的中断挂起
;  1 至少一个INT2级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。
; D0---INT1 FLAG 中断1标志位。该位用作连至第1级中断INT1的所有中断标志。
;  0 无INT1级的中断挂起
;  1 至少一个INT1级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;;
;----------------------------------------------------------


;外设中断寄存器包括如下几种:
;o 外设中断请求寄存器0(PIRQR0)
;o 外设中断请求寄存器1(PIRQR1)
;o 外设中断请求寄存器2(PIRQR2)
;o 外设中断应答寄存器0(PIACKR0)
;o 外设中断应答寄存器1(PIACKR1)
;o 外设中断应答寄存器2(PIACKR2) 外设中断请求寄存器和外设中断应答寄存器都属于外
;设中断扩展模块用来向CPU产生INT1-INT6中断请求
;的内部寄存器。这些寄存器用户只能对其读。

;PIVR------外设中断向量寄存器---701Eh
; 该寄存器的16位V15-V0,为最近 一次被应答的外设中断的地址向量。

;PIRQR0------外设中断请求寄存器0---7010h
; D15-0 :外设请求标志位IRQ0.15-IRQ0.0
;  0 无相应外设的中断请求
;  1 相应外设的中断请求被挂起
;注:写入1会发出一个中断请求到DSP核,写入0无影响。

;PIRQR1------外设中断请求寄存器1---7011h
; D15:  保留位,读出为0,写入无影响。
; D14-0 :外设请求标志位IRQ1.14-IRQ1.0
;  0 无相应外设的中断请求
;  1 相应外设的中断请求被挂起
;注:写入1会发出一个中断请求到DSP核,写入0无影响。

;PIRQR2------外设中断请求寄存器2---7012h
; D15: 保留位 
; D14-0 :外设请求标志位IRQ2.14-IRQ2.0
;  0 无相应外设的中断请求
;  1 相应外设的中断请求被挂起
;注:写1会发出一个中断请求到DSP核,写0无影响。

;PIACKR0------外设中断应答寄存器0---7014h

;PIACKR1------外设中断应答寄存器1---7015h
 
;PIACKR2------外设中断应答寄存器2---7016h

;XINT1CR------外部中断1控制寄存器---7070h
; D15:XINT1标志位。
;  0 没有检测到跳变
;  1 检测到跳变
; D14-3:保留位
; D2:XINT1极性。
;  0 在下降沿产生中断
;  1 在上升沿产生中断
; D1:XINT1优先级?
;  0 高优先级
;  1 低优先级
; D0:XINTl使能位。
;  0 屏蔽中断
;  1 使能中断
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

 
;XINT2CR------外部中断2控制寄存器---7071h
; D15:XINT2中断请求标志位。当XINT2的中断请求被应 答时,该位被自动清0。
;  0-没有检测到跳变
;  1-检测到跳变 软件向该位写1(写0无效)或器件复位时,该位也被清0
; D14-3:保留位。
; D2:XINT2极性。该位决定XINT2引脚信号的上升沿还是下降沿产生中断。
;  0 在下降沿产生中断
;  1 在上升沿产生中断
; D1:XINT2的中断优先级。
;  0 高优先级
;  1 低优先级
; D0:XINT2的中断使能位。
;  0 屏蔽该中断
;  1 使能该中断

;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

 

   setc intm   ;关闭所有可屏蔽中断
   clrc sxm    
   clrc ovm
   clrc cnf    ;B0 被配置为数据存储空间

   ldp  #DP_PF1
   splk #85feh,   SCSR1
   splk #0e8h,   WDCR;不使能WDT

   ldp  #0
   splk #0000h,   IMR ;关闭中断
   splk #0ffffh,  IFR ;清全部中断标志

       LDP  #0E0H
   ;SPLK  #81FEH,   SCSR1   ;CLKIN=6 M,CLKOUT=24 M
       SPLK #0E8H,   WDCR ;不使能WDT

;==========================================================
; GPIO----初始化
;==========================================================
;7090h MCRA  I/O复用控制寄存器A
;7092h MCRB  I/O复用控制寄存器B
;7094h MCRC  I/O复用控制寄存器C
;7098h PADATDIR I/O端口A数据和方向寄存器
;709Ah PBDATDIR I/O端口B数据和方向寄存器
;709Ch PCDATDIR I/O端口C数据和方向寄存器
;709Eh PDDATDIR I/O端口D数据和方向寄存器
;7095h PEDATDIR I/O端口E数据和方向寄存器
;7096h PFDATDIR I/O端口F数据和方向寄存器

;MCRA------I/O口复用控制寄存器A---7090H
;----------------------------------------------------------- 
;位的名称     功能选择
;-----------------------------------------------------------
;       基本功能(MCRA.n=1) 一般I/O口(MCRA.n=0)
;-----------------------------------------------------------
;0 MCRA. 0      SCITXD         IOPA0
;1 MCRA. 1    SCIRXD    IOPA1
;2 MCRA. 2    XINT1    IOPA2
;3 MCRA. 3    CAP1/QEP1   IOPA3
;4 MCRA. 4    CAP2/QEP2   IOPA4
;5 MCRA. 5    CAP3    IOPA5
;6 MCRA. 6    PWM1    IOPA6
;7 MCRA. 7    PWM2    IOPA7
;8 MCRA. 8    PWM3    IOPB0
;9 MCRA. 9    PWM4    IOPB1
;10 MCRA. 10   PWM5    IOPB2
;11 MCRA. 11   PWM6    IOPB3
;12 MCRA. 12   T1PWM/T1CMP   IOPB4
;13 MCRA. 13   T2PWM/T2CMP   IOPB5
;14 MCRA. 14   TDIRA    IOPB6
;15 MCRA.15    TCLKINA    IOPB7
;-----------------------------------------------------------
 
;MCRB------I/O口复用控制寄存器B---7092H
;----------------------------------------------------------- 
;位的名称     功能选择
;-----------------------------------------------------------
;       基本功能(MCRB.n=1) 一般I/O口(MCRB.n=0)
;-----------------------------------------------------------
;0 MCRB. 0      W/R          IOPC0
;1 MCRB. 1    BIO     IOPC1
;2 MCRB. 2    SPISIMO    IOPC2
;3 MCRB. 3    SPISOMI    IOPC3
;4 MCRB. 4    SPICLK    IOPC4
;5 MCRB. 5    SPISTE    IOPC5
;6 MCRB. 6    CANTX    IOPC6
;7 MCRB. 7    CANRX    IOPC7
;8 MCRB. 8    XINT2/ADCSOC  IOPD0
;9 MCRB. 9    EMU0    Reserved
;10 MCRB. 10   EMU1    Reserved
;11 MCRB. 11   TCK     Reserved
;12 MCRB. 12   TDI     Reserved
;13 MCRB. 13   TDO     Reserved
;14 MCRB. 14   TMS     Reserved
;15 MCRA.15    TMS2    Reserved
;-----------------------------------------------------------

;MCRC------I/O口复用控制寄存器A---7094H
;----------------------------------------------------------- 
;位的名称     功能选择
;-----------------------------------------------------------
;       基本功能(MCRC.n=1) 一般I/O口(MCRC.n=0)
;-----------------------------------------------------------
;0 MCRC. 0      CLKOUT         IOPE0
;1 MCRC. 1    PWM7    IOPE1
;2 MCRC. 2    PWM8    IOPE2
;3 MCRC. 3    PWM9    IOPE3
;4 MCRC. 4    PWM10    IOPE4
;5 MCRC. 5    PWM11    IOPE5
;6 MCRC. 6    PWM12    IOPE6
;7 MCRC. 7    CAP4/QEP3   IOPE7
;8 MCRC. 8    CAP5/QEP4   IOPF0
;9 MCRC. 9    CAP6    IOPF1
;10 MCRC. 10   T3PWM/T3CMP   IOPF2
;11 MCRC. 11   T4PWM/T4CMP   IOPF3
;12 MCRC. 12   TDIRB    IOPF4
;13 MCRC. 13   TCLKINB    IOPF5
;14 MCRC. 14   Reserved   IOPF6
;15 MCRC.15    Reserved   Reserved
;-----------------------------------------------------------

;注意: 保留位是不可操作的,读出为0,写入对它无影响。
;  当复用I/O脚无论是被配置为外设功能还是为通用I/O时,
;  引脚的状态都可通过读I/O数据寄存器来获取。
;  如果I/O端口用作通用I/O,则必须对数据和方向寄存器
;  进行初始化设置,规定其为输入端口还是输出端口。

;PADATDIR------I/O端口A数据和方向控制寄存器---7098h
; D15-8---AnDIR PA7-PA0的数据方向
;  0-相应引脚配置为输入
;  1-相应引脚配置为输出
; D7-0---IOPAn
;  如果AnDIR=0,引脚配置为输入:
;   0-相应引脚的电平读为低电平
;   1-相应引脚的电平读为高电平
;  如果AnDIR=1,引脚配置为输出:
;   0-设置相应引脚,使其输出信号为低电平
;   1-设置相应引脚,使其输出信号为高电平
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;PBDATDIR------I/O端口B数据和方向控制寄存器---709Ah
; D15-8:BnDIR PB7-PB0的数据方向
;  0-相应引脚配置为输入
;  1-相应引脚配置为输出
; D7-0:IOPBn
;  如果BnDIR=0,引脚配置为输入方式。
;   0-相应引脚的电平读为低电平
;   1-相应引脚的电平读为高电平
;  如果BnDIR=1,引脚配置为输出
;   0-设置相应引脚,使其输出信号为低电平时有效
;   1-设置相应引脚,使其输出信号为高电平时有效
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

 

;PCDATDIR------I/O端口C数据和方向控制寄存器---709Ch
; D15-8:CnDIR PC7-PC0的数据方向
;  0-相应引脚配置为输入
;  1-相应引脚配置为输出
; D7-0:IOPC7-IOPC0
;  如果CnDIR=0,引脚配置为输入。
;   0-相应引脚的电平读为低电平
;   1-相应引脚的电平读为高电平
;  如果BnDIR=1,引脚配置为输出
;   0-设置相应引脚,使其输出信号为低电平
;   1-设置相应引脚,使其输出信号为高电平
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;PDDATDIR------I/O端口D数据和方向控制寄存器---709Eh
; D15-9:保留位
; D8: D0DIR
;  0-相应引脚配置为输入
;  1-相应引脚配置为输出 位7-1:保留
; D0: IOPD0
;  如果D0DIR=0,引脚配置为输入。
;   0-相应引脚的电平读为低电平
;   1-相应引脚的电平读为高电平
;  如果D0DIR=1,引脚配置为输出
;   0-设置相应引脚,使其输出信号为低电平时有效
;   1-设置相应引脚,使其输出信号为高电平时有效
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

 

;PEDATDIR------I/O端口E数据和方向控制寄存器---7095h
; D15-8:EnDIR
;  0-相应引脚配置为输入
;  1-相应引脚配置为输出
; D7-0:IOPEn
;  如果EnDIR=0,引脚配置为输入。
;   0-相应引脚的电平读为低电平
;   1-相应引脚的电平读为高电平
;  如果EnDIR=1,引脚配置为输出
;   0-设置相应引脚,使其输出信号为低电平时有效
;   1-设置相应引脚,使其输出信号为高电平时有效
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;PFDATDIR------I/O端口F数据和方向控制寄存器---7096h
; D15:保留位
; D14-8:EnDIR
;  0-相应引脚配置为输入
;  1-相应引脚配置为输出
; D7-0:IOPFn
;  如果FnDIR=0,引脚配置为输入。
;   0-相应引脚的电平读为低电平
;   1-相应引脚的电平读为高电平
;  如果FnDIR=1,引脚配置为输出
;   0-设置相应引脚,使输出为低电平有效
;   1-设置相应引脚,使输出为高电平有效
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


   ldp  #DP_PF2
   splk #0ff00h,  MCRB
   
   lacl MCRC
   and  #0ff00h   ;IOPE口配置为一般I/O功能
   sacl MCRC

   lacl PEDATDIR
   or  #0ff00h   ;IOPE 设置为输出方式
   sacl PEDATDIR
;==========================================================
; EVA/B----初始化
;==========================================================
; 事件管理器A的引脚      事件管理器B的引脚
;----------------------------------------------------------------------------------
;引脚名称  描述      引脚名称  描述
;----------------------------------------------------------------------------------
;CAP1/QEP1  捕捉单元1输入,QEP电路输入1  CAP4/QEP3 捕捉单元4输入,QEP电路 输入3
;CAP2/QEP2  捕捉单元2输入,QEP电路 输入2 CAP5/QEP4 捕捉单元5输入,QEP电路 输入4
;CAP3   捕捉单元3输入     CAP6  捕捉单元6输入
;PWM1   比较单元1输出1     PWM7  比较单元4输出1
;PWM2   比较单元1输出2     PWM8  比较单元4输出2
;PWM3   比较单元2输出1     PWM9  比较单元5输出1
;PWM4   比较单元2输出2     PWM10  比较单元5输出2
;PWM5   比较单元3输出1     PWM11  比较单元6输出1
;PWM6   比较单元3输出2     PWM12  比较单元6输出2
;T1CMP/T1PWM 定时器1比较/PWM输出   T3CMP/T3PWM 定时器3比较/PWM输出
;T2CMP/T2PWM 定时器2比较/PWM输出   T4CMP/T4PWM 定时器4比较/PWM输出
;TCLKINA  EVA定时器的外部时钟输入  TCLKINB  EVB定时器的外部时钟输入
;TDIRA   EVA定时器的计数方向输入  TDIRB  EVB定时器的计数方向输入
;----------------------------------------------------------------------------------
;   EV寄存器及地址
;-------------------------------------------------

;下面四个表列出EV所有寄存器的地址
;-------------------------------------------------
;  EVA定时器寄存器地址
;-------------------------------------------------
;地址 寄存器  名称    说明
;7400h GPTCONA 定时器控制寄存器A  EVA 
;7401h T1CNT 定时器1的计数寄存器  定时器1
;7402h T1CMPR 定时器1的比较寄存器 
;7403h T1PR 定时器1的周期寄存器 
;7404h T1CON 定时器1的控制寄存器 
;7405h T2CNT 定时器2的计数寄存器  定时器2
;7406h T2CMPR 定时器2的比较寄存器 
;7407h T2PR 定时器2的周期寄存器 
;7408h T2CON 定时器2的控制寄存器 

;7500h GPTCONB 定时器控制寄存器B  EVB 
;7501h T3CNT 定时器1的计数寄存器  定时器3
;7502h T3CMPR 定时器1的比较寄存器 
;7503h T3PR 定时器1的周期寄存器 
;7504h T3CON 定时器1的控制寄存器 
;7505h T4CNT 定时器2的计数寄存器  定时器4
;7506h T4CMPR 定时器2的比较寄存器 
;7507h T4PR 定时器2的周期寄存器 
;7508h T4CON 定时器2的控制寄存器 
;-------------------------------------------------

;  EVA比较控制寄存器地址
;-------------------------------------------------
;地址 寄存器  名称    说明
;-------------------------------------------------
;7411h COMCONA 比较控制寄存器A   EVA
;7413h ACTRA 比较动作控制寄存器A
;7415h DBTCONA 死区时间控制寄存器A
;7417h CMPR1 比较寄存器1
;7418h CMPR2 比较寄存器2
;7419h CMPR3 比较寄存器3
;--------------------------------------------
;7511h COMCONB 比较控制寄存器B   EVB
;7513h ACTRB 比较动作控制寄存器B
;7515h DBTCONB 死区时间控制寄存器B
;7517h CMPR4 比较寄存器4
;7518h CMPR5 比较寄存器5
;7519h CMPR6 比较寄存器6
;-------------------------------------------------

;EVA捕捉控制寄存器地址
;-------------------------------------------------
;地址 寄存器  名称    说明
;-------------------------------------------------
;7420h CAPCONA  捕捉控制寄存器A  EVA
;7422h CAPFIFOA 捕捉FIFO状态寄存器A
;7423h CAP1FIFO 两级深度的捕捉FIFO堆栈1
;7424h CAP2FIFO 两级深度的捕捉FIFO堆栈2
;7425h CAP3FIFO 两级深度的捕捉FIFO堆栈3
;------------------------------------------
;7520h CAPCONB  捕捉控制寄存器B  EVB
;7522h CAPFIFOB 捕捉FIFO状态寄存器B
;7523h CAP4FIFO 两级深度的捕捉FIFO堆栈4
;7524h CAP5FIFO 两级深度的捕捉FIFO堆栈5
;7525h CAP6FIFO 两级深度的捕捉FIFO堆栈6

;-------------------------------------------------
 
;FIFO堆栈的底部寄存器,允许 读取最近的捕捉值
;-------------------------------------------------
;7427h CAP1FBOT      EVA
;7428h CAP2FBOT 
;7429h CAP3FBOT

;7527h CAP4FBOT      EVB
;7428h CAP5FBOT 
;7429h CAP6FBOT 
;-------------------------------------------------

;EV中断寄存器地址
;-------------------------------------------------
;地址 寄存器  名称    说明
;-------------------------------------------------
;742Ch EVAIMRA EVA的中断屏蔽寄存器A EVA
;742Dh EVAIMRB EVA的中断屏蔽寄存器B
;742Eh EVAIMRC EVA的中断屏蔽寄存器C
;742Fh EVAIFRA EVA的中断标志寄存器A
;7430h EVAIFRB EVA的中断标志寄存器B
;7431h EVAIFRC EVA的中断标志寄存器C

;752Ch EVBIMRA EVB的中断屏蔽寄存器A EVB
;752Dh EVBIMRB EVB的中断屏蔽寄存器B
;752Eh EVBIMRC EVB的中断屏蔽寄存器C
;752Fh EVBIFRA EVB的中断标志寄存器A
;7530h EVBIFRB EVB的中断标志寄存器B
;7431h EVBIFRC EVB的中断标志寄存器C
;-------------------------------------------------
;事件管理器中断标志寄存器
;------------------------------------------
;EVAIFRA----EVA中断标志寄存器A----742FH
; D15~11  保留位
; D10   T1OFINT  FLAG。通用定时器1上溢中断标志
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D9   T1UFINT  FLAG。通用定时器1下溢中断标志
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D8:   T1CINT  FLAG。通用定时器1比较中断标志位。
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D7:   T1PINT  FLAG。通用定时器1周期中断标志位。
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D6~4  保留位
; D3:   CMP3INT。比较单元3中断标志位。
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D2:   CMP2INT。比较单元2中断标志位
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D1:   CPP1INT。比较单元1中断标志位
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D0:   PDPINTA。功率驱动保护中断标志。
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; EVAIFRB---- EVA中断标志寄存器B----7430H
; D15~4  保留位
; D3:   T2OFINT  FLAG。通用定时器2上溢中断标志位。
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D2:   T2OFINT  FLAG。通用定时器2上溢中断标志位
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D1:   T2CINT FLAG。通用定时器2比较中断标志位。
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D2:   T2PINT  FLAG。通用定时器2周期中断标志位。
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

;EVAIFRC----EVA中断标志寄存器C----7431H
; D15~3  保留位
; D2   CAP3INT  FLAG。捕获单元3中断标志位
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D1   CAP2INT  FLAG。捕获单元2中断标志位
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
; D0   CAP1INT  FLAG 。捕获单元1中断标志位
;    READ:  0  标志被复位
;       1  标志被置位
;    WRITE: 0  无效
;       1  复位标志位
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

;EVAIMRA----EVA中断屏蔽寄存器A----742CH
; D15~11  保留位
; D10      T1OFINT  ENABLE。通用定时器1上溢中断使能位。
;       0      禁止;
;       1      使能。
; D9   T1UFINT ENABLE。通用定时器1下溢中断使能位。
;       0      禁止;
;       1          使能。
; D8      TICINT  ENABLE。通用定时器1比较中断使能位。
;       0      禁止;
;       1          使能。
; D7      TIPINT ENABILE。通用定时器1周期中断使能位。
;       0      禁止;
;       1          使能。
; D6~4  保留位。
; D3      CMP3INT  ENABILE。比较单元3中断使能位。
;       0      禁止;
;       1          使能。
; D2   CMP2INT ENABLE。比较单元2中断使能位。
;       0      禁止;
;       1          使能。
; D1   CMPIINT  ENABLE。比较单元1中断使能位。
;       0      禁止;
;       1          使能。
; D0   PDPINTA  ENABLE。功率驱动保护中断使能位。
;       0      禁止;
;       1          使能。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; EVAIMRB----EVA中断屏蔽寄存器B--地址742Dh
; D15~4  保留位
; D3   T2OFINT  ENABILE。通用定时器2上溢中断使能位。
;       0      禁止;
;       1          使能。
; D2  T2UFINT ENABLE。通用定时器2下溢中断使能位。
;       0      禁止;
;       1          使能。
; D1  T2CINT ENABLE。通用定时器2比较中断使能位。
;       0      禁止;
;       1          使能。
; D0  T2PINT ENABLE。通用定时器2周期中断使能位。
;       0      禁止;
;       1          使能。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

;EVAIMRC----EVA中断屏蔽寄存器--地址742Eh
; D15~3 保留位
; D2  CAP3INT  ENABLE。捕获单元3中断使能位。
;       0      禁止;
;       1          使能。
; D1  CAP2IINT ENABLE。捕获单元2中断使能位。
;       0      禁止;
;       1          使能。
; D0  CAP1INT ENABLE。捕获单元1中断使能位。
;       0      禁止;
;       1          使能。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

;EVBIFRA----EVB中断标志寄存器A----752FH

;EVBIFRB---EVB中断标志寄存器B---7530H

; EVBIFRC---EVB中断标志寄存器C----7531H

;EVBIMRA---EVB中断屏蔽寄存器A---752CH

; EVBIMRB---EVB中断屏蔽寄存器B---752DH

; EVBIMRC---EVB中断屏蔽寄存器C---752EH

;=============================================
;TxCON------定时器X控制寄存器
; ---x=1,2,3,4,7404H,7408H,7504H,7508H
;==============================================
; D15~14 Free Soft。仿真控制位
;  00 一旦仿真挂起,立即停止
;  01 一旦仿真挂起,在当前定时器周期结束后停止
;  10 操作不受仿真挂起的影响
;  11 操作不受仿真挂起的影响
; D13 保留位 读为0,写无影响
; D12~11 TMODE1/TMODE0。记数模式选择。
;  00 停止/保持
;  01 连续增/减计数模式
;  10 连续增计数模式
;  11定向增计数模式
; D10~8 TPS2/TPS0。输入时钟预定标系数
;  000 X/1  001  X/2
;  010 X/4  011  X/8
;  100 X/16 101  X/32
;  110 X/64 111   X/128
;  X=CPU时钟频率
; D7 T2SWT1/T4SWT1。定时器2、4周期寄存器选择位。
;  0 定时器2、4使用自身的周期寄存器
;  1 使用T1CON、T3CON中的定时器使能位来使能或禁止响应操作,
;   从而忽略了自身的定时器使能位
; D6 TENABLE。定时器使能位
;  0 禁止定时器操作,即定时器被置于保持状态且预定标器被复位
;  1 使能定时器操作
; D5 ~4 TCLKS1/TCLKS0。时钟源选择。
;  00  内部时钟
;  01  外部时钟
;  10 保留
;  11 正交编码脉冲电路----只适用于定时器2和定时器4,在定时器1、
;   3中保留,这种操作只在SELT1PR=0时有效
; D3~2 TCLD1/TCLD0。定时器比较寄存器(如果有效)的重装载条件。
;  00 当计数值是0时重装载
;  01 当计数值是0或等于周期寄存器值时重装载
;  10 立即重装载
;  11 保留
; D1 TECMPR 。定时器比较使能位。
;  0 禁止定时器比较操作
;  1 使能定时器比较操作
; D0 SELT1PR。周期寄存器选择,在定时器2、4中有效,定时器1、3中保留
;  0 使能自身的周期寄存器
;  1 使用T1PR(在  EVA模块)或T3PR(在EVB模块)作为周期寄存器,
;   而忽略自身的周期寄存器
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;GPTCONA------全局通用定时器控制寄存器---7400H
; D15 保留位
; D14 T2STAT 。通用定时器2的状态,只读。
;  0 减计数
;  1 增计数
; D13 T1STAT。通用定时器1的状态,只读。
;  0 减计数
;  1增计数
; D12 ~11保留位。
; D10~9 T2TOADC。通用定时器2启动模数转换事件。
;  00 无事件启动模数转换
;  01 设置由下溢中断标志来启动模数转换
;  10 设置由周期中断标志在启动模数转换
;  11 设置由比较中断标志来启动模数转换
; D8~7 T1 TOADC。通用定时器1启动模数转换事件。
;  00 无事件启动模数转换
;  01 设置由下溢中断标志来启动模数转换
;  10 置由周期中断标志在启动模数转换
;  11 设置由比较中断标志来启动模数转换
; D6 TCOMPOE。比较输出允许,如果PDPINTx有效,则该位设置为0。
;  0 禁止所有通用定时器比较输出(所有比较输出都置成高阻态)、
;  1 使能所有通用定时器比较输出
; D5~4 保留位
; D3~2 T2PIN。通用定时器2比较输出极性。
;  00 强制低
;  01 低有效
;  10 高有效
;  11 强制高
; D1~0 T1PIN。通用定时器1比较输出极性。
;  00 强制低
;  01 低有效
;  10 高有效
;  11 强制高
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;GPTCONB------全局通用定时器控制寄存器B---7500H
; D15 保留位
; D14 T2STAT 。通用定时器4的状态,只读。
;  0 减计数
;  1 增计数
; D13 T1STAT。通用定时器3的状态,只读。
;  0 减计数
;  1 增计数
; D12 ~11保留位。
; D10~9 T2TOADC。通用定时器4启动模数转换事件。
;  00 无事件启动模数转换
;  01 设置由下溢中断标志来启动模数转换
;  10 设置由周期中断标志在启动模数转换
;  11 设置由比较中断标志来启动模数转换
; D8~7 T1 TOADC。通用定时器3启动模数转换事件。
;  00 无事件启动模数转换
;  01 设置由下溢中断标志来启动模数转换
;  10 置由周期中断标志在启动模数转换
;  11 设置由比较中断标志来启动模数转换
; D6 TCOMPOE。比较输出允许,如果PDPINTx有效,则该位设置为0。
;  0 禁止所有通用定时器比较输出(所有比较输出都置成高阻态)、
;  1 使能所有通用定时器比较输出
; D5~4 保留位
; D3~2 T2PIN。通用定时器4比较输出极性。
;  00 强制低
;  01 低有效
;  10 高有效
;  11 强制高
; D1~0 T1PIN。通用定时器3比较输出极性。
;  00 强制低
;  01 低有效
;  10 高有效
;  11 强制高
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;COMCONA------比较控制寄存器A---7411H
; D15 CENABLE。比较使能位。
;  0 禁止比较操作,CMPRX和ACTRA寄存器的影子寄存器为透明
;  1 使能比较操作
; D14 ~13 CLD1/CLD0。比较寄存器CMPRX重载条件。
;    00 当T1CNT=0时(即下溢)
;    01 当T1CNT=0或T1CNT=T1PR时(即下溢或周期匹配)
;    10 立即
;    11 保留、
; D12 SVENABLE 。空间矢量PWM模式矢量位。
;  0 禁止空间矢量PWM模式
;  1 使能空间矢量PWM模式
; D11~10  ACTRLD1/ACTRLD0。方式控制寄存器重载条件。
;  00 当T1CNT=0时(即下溢)
;    01 当T1CNT=0或T1CNT=T1PR时(即下溢或周期匹配)
;    10 立即
;    11 保留、
; D9 FCOMPOE。比较输出使能位。有效的PDPINTA将此位清零
; D8 PDPINTA STATUS。这一位反映了当前PDPINTA引脚的状态。
  ;(该位只在240XA系列中应用,在240X系列中为保留位)
; D7~0 保留位
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;ACTRA---比较方式控制寄存器---7413H
; D15 SVRDIR。空间矢量PWM旋转方向位,仅用于空间矢量PWM的产生。
;     0 正向(CCW)
;     1 负向(CW)
; D14~12 D2/D0。基本的空间矢量位,仅用于空间矢量PWM输出的产生
; D11~10 CMP6ACT1/0。引脚PWM6/IOPB3上的比较输出方式选择位
;  00 强制低  01  低有效
;  10 高有效  11强制高
; D9~8 CMP5ACTR1/0。引脚PWM5/IOPB2上的比较输出方式选择位
;  00 强制低 
;  01 低有效
;  10 高有效 
;  11 强制高
; D7~6 CMP4ACTR1/0。引脚PWM4/IOPB1上的比较输出方式选择位
;  00 强制低 
;  01  低有效
;  10 高有效 
;  11 强制高
; D5~4 CMP3ACTR1/0。引脚PWM3/IOPB0上的比较输出方式选择位
;  00 强制低 
;  01  低有效
;  10 高有效 
;  11 强制高
; D3~2 CMP2ACTR1/0。引脚PWM2/IOPA7上的比较输出方式选择位
;  00 强制低 
;  01 低有效
;  10 高有效 
;  11 强制高
; D1~0 CMP1ACTR1/0。引脚PWM1/IOPA6上的比较输出方式选择位
;  00 强制低 
;  01  低有效
;  10 高有效 
;  11  强制高
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;DBTCONA------死区控制寄存器A---7415H
; D15~12 保留位
; D11~8 DBT3~DBT0。死区定时器3使能位,这些位决定了3个4位死区定时器的周期值。
; D7 EDBT3。死区定时器3使能位(对比较单元3的引脚PWM5和PWM6而言)。
;  0 禁止
;  1 使能
; D6 EDBT2。死区定时器2使能位(对比较单元2的引脚PWM3和PWM4而言)。
;  0 禁止
;  1 使能
; D5 EDBT1。死区定时器1使能位(对比较单元1的引脚PWM1和PWM2而言)。
;  0 禁止
;  1 使能
; D4~2 DBTPS2~DBTPS0。死区定时器的预分频器
;  000  X/1        
;  001  X/2
;  010  X/4    
;  011  X/8
;  100  X/16
;  101  X/32
;  000  X/32
;  001  X/32
; D1~0 保留位。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;CAPFlFOA------捕捉FlFO状态寄存器A---7422h
; D15-14 保留位。
; D13-12 CAP3FlFO。捕捉单元3的FlFO状态位
;  00 空
;  01 有一个输入
;  10 有两个输入
;  11 有两个输入并又捕捉到一个,第一个输入已丢 失。
; D11-10 CAP2FlFO。捕捉单元2的FlFO状态位
;  00 空
;  01 有一个输入
;  10 有两个输入
;  11 有两个输入并又捕捉到一个,第一个输入已丢 失。
; D9-8 CAP1FlFO。捕捉单元1的FlFO状态位
;  00 空
;  01 有一个输入
;  10 有两个输入
;  11 有两个输入并又捕捉到一个,第一个输入已丢 失。
; D7-0 保留位
;捕捉FlFO状态寄存器B(CAPFlFOB)---7522h,与CAPFlFOA各位的意义相同。

;EVAIFRA------以EVA中断标志寄存器A---742Fh
; D15-11 保留位。读返回0,写无效。
; D10 T1OFINT FLAG。通用定时器1的上溢中断标志
;  读 0:标志被复位;1:标志被置位
;  写 0:无效 1:复位标志位
; D9 T1UFINT FLAG。通用定时器1的下溢中断标志
;  读 0:标志被复位;1:标志被置位
;  写 0:无效 1:复位标志位
; D8 T1CINT FLAG。通用定时器1的比较中断标志
;  读 0:标志被复位;1:标志被置位
;  写 0:无效 1:复位标志位
; D7 T1PINT FLAG。通用定时器1的周期中断标志
;  读 0:标志被复位;1:标志被置位
;  写 0:无效 1:复位标志位
; D6-4 保留位。读返回0,写无效。
; D3 CMP3INT FLAG。比较单元3中断标志
;  读 0:标志被复位;1:标志被置位
;  写 0:无效 1:复位标志位
; D2 CMP2INT FLAG。比较单元2中断标志
;  读 0:标志被复位;1:标志被置位
;  写 0:无效 1:复位标志位
; D1 CMP1INT FLAG。比较单元1中断标志
;  读 0:标志被复位;1:标志被置位
;  写 0:无效 1:复位标志位
; D0 PDPINTA FLAG。功率驱动保护中断标志
;  读 0:标志被复位;1:标志被置位
;  写 0:无效 1:复位标志位 EVAIFRB、EVAIFRC各位意义不再详述
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;EVAIFRA------EVA中断屏蔽寄存器A---742Ch
; D15-11 保留位。读返回0,写无效。
; D10 T1OFINT ENABLE。通用定时器1的上溢中断使能
;  0:禁止
;  1:使能
; D9 T1UFINT ENABLE。通用定时器1的下溢中断使能
;  0:禁止
;  1:使能
; D8 T1CINT ENABLE。通用定时器1的比较中断使能
;  0:禁止
;  1:使能
; D7 T1PINT ENABLE。通用定时器1的周期中断使能
;  0:禁止
;  1:使能
; D6-4 保留位。读返回0,写无效。
; D3 CMP3INT ENABLE。比较单元3中断使能
;  0:禁止
;  1:使能
; D2 CMP2INT ENABLE。比较单元2中断使能
;  0:禁止
;  1:使能
; D1 CMP1INT ENABLE。比较单元1中断使能
;  0:禁止
;  1:使能
; D0 PDPINTA ENABLE。功率驱动保护中断使能
;  0:禁止
;  1:使能 EVAIMRB、EVAIMRC各位意义不再详述
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

 

;比较单元操作所要求的寄存器设置顺序
; EVA模块   EVB模块
; 设置T1PR  设置T3PR
; 设置ACTRA  设置ACTRB
; 初始化CMPRx  初始化CMPRx
; 设置COMCONA  设置COMCONB
; 设置T1CON  设置T3CON

;==========================================================
; ADC----初始化
;==========================================================
;ADCTRL1------ADC控制寄存器1---70A0H
; D15 保留位
; D14 复位位。ADC模块软件复位位
;  0 无影响
;  1 复位整个ADC模拟
; D13~12 SOFT位和FREE位
;  SOFT  FREE
;  0     0 一旦仿真悬挂,ADC模块立即停止
;  1     0  仿真悬挂时,ADC模块完成当前转换后停止
;  X     1 自由运行,继续运行而不管仿真悬挂
; D11~8 采样时间选择位ACQ PS3-ACQPS0。这几位决定了ADC时钟的预定标系数。
; CPU时钟为30MHZ时ADC模块的预定标系数
; # ACQ-PS3 ACQ-PS2 ACQ-PS1 ACQ-PS0 预定标因子 信号源阻抗(CPS=0)信号源阻抗(CPS=1)
; 0 0  0  0  0  1 2*TCLK   67   385
; 1 0  0  0  1  2 4*TCLK   385   1020
; 2 0  0  1  0  3 6*TCLK   702   1655
; 3 0  0  1  1  4 8*TCLK   1020  2290
; 4 0  1  0  0  5 10*TCLK   1337  2925
; 5 0  1  0  1  6 12*TCLK   1655  3560
; 6 0  1  1  0  7 14*TCLK   1972  4194
; 7 0  1  1  1  8 16*TCLK   2290  4829
; 8 1  0  0  0  9 18*TCLK  
; 9 1  0  0  1  10 20*TCLK  
; 10 1  0  1  0  11 22*TCLK  
; 11 1  0  1  1  12 24*TCLK  
; 12 1  1  0  0  13 26*TCLK  
; 13 1  1  0  1  14 28*TCLK  
; 14 1  1  1  0  15 30*TCLK  
; 15 1  1  1  1  16 32*TCLK  
; 1) TCLK的周期取决于"转换时钟预定标因子"位(BIT7),例如:
; 2) CPS=0:TCLK=1/CLK(例对于CLK=40MHZ,TCLK=25ns)
; 3) CPS=0:TCLK=1/CLK/2对于CLK=40MHZ,TCLK=50ns)
; D7 CPS位。转换时钟预定标位。这一位决定了ADC转换逻辑时钟的预定标
;  0    FCLK= CLK/1
;  1    FCLK= CLK/2
;  其中CLK为CPU时钟频率。
; D6 连续转换位CONT RUN 。这一位决定排序器工作在连续转换模式或者启动/停止模式。
  ;用户可以在当前转换序列正被执行时向这一位写数,但是只有在当前转换序列完
  ;成之后才生效,在连续模式下,用户不用对排序器复位,而在启动/停止模式下,
  ;排序器必须被复位以使排序器指针指到CONV00。
;  0 启动/停止模式
;  1 连续转换模式。
; D5  ADC中断请求优先级位 INT PRI。
;  0 高优先级
;  1 低优先级
; D4 级连排序器工作方式位 SEQ ACSC。
;  0   双排序器工作模式。SEQ1 和SEQ2作为两个最多可选择8个转换通道的排序器
;  1   级连模式。SEQ1和SEQ2级连起来作为一个最多可选择16个转换通道的排序器SEQ
; D3 偏差校准使能位 CAL ENA
;  0 禁止校准模式
;  1 使能校准模式
; D2桥使能位 BRG ENA。
;  BRG ENA  HI/LO CAL ENA=1
;   0  0  VREFLO    VREFLO
;   0  1  VREFHI    VREFHI
;   1  0 |(VREFHI- VREFLO)/2 | VREFLO
;   1  1 |(VREFLO- VREFHI)/2 | VREFHI

;  0 满的参考电压被接到ADC输入
;  1 参考的中点电压被接到ADC输入
; D1 VREFHI和VREFLO选择位HI/LO,见表8.8。
;  0 用VREFLO作为ADC输入的值
;  1 用VREFHI作为ADC输入的值
; D0 自测试使能位STEST ENA
;  0 禁止自测试模式
;  1 使能自测试模式
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;ADCTRL2------ADC控制寄存器2---70A1H
; D15 EVB SOC SEQ 。EVB的SOC信号为级连排序器使能位。
;  0  不起作用
;  1  允许级连的排序器SEQ 被事件管理器B的信号启动
; D14 RST SEQ1/STRT CAL。 复位排序器1/启动校准转换方式位。
;  在校准转换方式被禁止的情况下:
;   0 不起作用
;   1 启动校准转换方式
; D13  SOC SEQ1。启动SEQ1转换位,以下触发源可以引起这一位被置一:
;    S/W 软件向这一位写1
;    EVA 事件管理器A
;    EVB事件管理器B(仅在级连模式下)
;    EXT 外部引脚(即ADC SOC引脚)
;  当一个触发源到来时有3种情况可能发生:
;   ⑴SEQ1 处于空闲状态且SOC位被清0时,SEQ1立即启动
     ;(在判优仲裁控制下),该位被置1后立即被清0,允许后来的触发源被悬挂。
;   ⑵SEQ1处于忙状态但SOC位为0时,该位被置1以表示一个触发源请求正被悬挂。
     ;当SEQ1 完成当前的转换又从新开始时,该位被清0。
;   ⑶SEQ1处于忙状态且SOC位已经被置1时,此时来到的触发源被忽略。
;    0 清除一个悬挂的SOC请求
;    1 软件触发启动SEQ1
; D12 SEQ1 BSY。SEQ1忙状态位
;    0 SEQ1 处于空闲状态
;  1 SEQ1处于忙状态,一个转换序列正在进行
; D11~10 对SEQ1的中断方式使能控制位,
;  D11  D10 中断方式说明
;  0  0 中断不使能
;  0  1 中断模式1 在中断标志位(INT FLAG SEQ1)置1时立即申请中断
;  1  0 中断模式2 仅当INT FLAG SEQ1 标志以经设置时,产生中断请求,
;     ;如果清除了+,INT FLAG SEQ1被置1,中断请求被屏蔽。
;  1  1 保留
;  + 表示如果有两个排序通道要求申请中断,则最后完成的排序通道将具有较高的优先级
; D9 INT FLAG SEQ1位。ADC模块SEQ1的中断标志位。
;    0 无中断事件发生
;  1 发生过中断事件
; D8 EVA SOC SEQ1位。事件管理器A对SEQ1产生SOC信号的屏蔽位。
;  0 SEQ1 不能被EVA的触发源启动
;  1 允许SEQ1/SEQ被EVA的触发源启动
; D7 EXT SOC SEQ1 位。外部信号对SEQ1的启动转换位
;  0 不起作用
;  1 允许一个来自ADCSOC引脚上信号启动ADC自动转换序列
; D6 RST SEQ2。复位排序器2
;  0 不起作用
;  1 立即复位排序器使排序器指针指到CONV00
; D5 SOC SEQ2,启动SEQ2转换位(仅适用于双排序器模式)
;  以下触发塬可以引起这一位被置1:
;  S/W 软件写1
;   EVB 事件管理器B
; D4 SEQ2 BSY。SEQ2忙状态位。
;  0 SEQ2 处于空闲状态
;  1 SEQ2 处于忙状态,一个转换序列正在进行
; D3~2 对SEQ2的中断方式使能控制位,见表8。10。

;  D3  D2 中断方式说明
;  0  0 中断不使能
;  0  1 中断模式1 在中断标志位(INT FLAG SEQ2)置1时立即申请中断
;  1  0 中断模式2 仅当INT FLAG SEQ2 标志以经设置时,产生中断请求,
     ;如果清除了+,INT FLAG SEQ2被置1,中断请求被屏蔽。
;  1  1 保留

; D1 INT FLAG SE Q2位。ADC模块SEQ2的中断标志位。
;  0 无中断事件发生
;  1 发生过中断事件
; D0 EVB SOC SEQ2位。事件管理器B对SEQ2产生SOC信号的屏蔽位。
;  0 SEQ2 不能被EVB的触发源启动
;  1 允许SEQ2被EVB的触发源启动
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;MAXCONV------最大转换通道寄存器---70A2H
; D15~7 保留位
; D6~0 MAXCONVn位域。这个位域决定了一次自动转换最多转换的通道的个数。
 ;该位域和他们的操作随着排序器工作模式的变化而变化。
; MAXCONV1的定义和转换个数之间的关系如表8.5所示 ,如果需要进行5个转换,
 ;则MAX CONV设置为4。在双排序器模式下使用SEQ1或者在级连模式下使用SEQ时,
 ;排序器指针依次从CONV00指到CONV04,并且这5个转换结果依次被存在转换结果
 ;寄存器00~04。在双排序器模式下使用SEQ2时,排序器指针依次从CONV08指到CONV12,
 ;并且这5个转换结果依次被存放在转换结果寄存器08~12中,当SEQ1工作在双排序器
 ;模式下,写入MAXCONV1中的值超过7时,SEQ CNTRn超过7之后继续记数,使得排序器
 ;指针从新指到CONV00并继续转换,
; 表MAX CONV1的位定义和转换个数之间的关系
; MAX CONV1.3~0 转换个数
;  0000   1
;  0001   2
;  0010   3
;  0011   4
;  0100   5
;  0101   6
;  0110   7
;  0111   8
;  1000   9
;  1001   10
;  1010   11
;  1011   12
;  1100   13
;  1101   14
;  1110   15
;  1111   16
; 对SEQ1操作,使用位域MAX CONV1_2~0
; 对SEQ2操作,使用位域MAX CONV2_2~0
; 对SEQ操作, 使用位域MAX CONV1_3~0
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;CHSELSEQn------ADC输入通道选择排序器控制寄存器
; CHSELSEQ1---70A3H
;  CONV03 CONV02 CONV01 CONV00
;  15~12 11~8 7~4 3~0
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; CHSELEQ2---70A4H
;  CONV07 COV06 CONV05 CONV04
;  15~12 11~8 7~4 3~0
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


; CHSELEQ3---70A5H
;  CONV11 CONV10 CONV099 CONV08
;  15~12 11~8 7~4 3~0
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


; CHSELEQ4---70A6H
;  CONV15 CONV14 CONV13 CONV12
;  15~12 11~8 7~4 3~0
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


; ADC输入通道选择定义
;  CONVnn值 ADC输入通道选择
;  0000   通道0
;  0001   通道1
;  0010   通道2
;  0011   通道3
;  0100   通道4
;  0101   通道5
;  0110   通道6
;  0111   通道7
;  1000   通道8
;  1001   通道9
;  1010   通道10
;  1011   通道11
;  1100   通道12
;  1101   通道13
;  1110   通道14
;  1111   通道15

;==========================================================
; SPI----初始化
;==========================================================
;SPI模块中有9个寄存器用于控制该模块的操作:
;(1)SPICCR: SPI配置控制寄存器。
;(2)SPICTL: SPI操作控制寄存器。
;(3)SPISTS: SPI状态寄存器。
;(4)SPIBRR: SPI波特率寄存器。
;(5)SPIRXEMU:SPI仿真缓冲寄存器。
;(6)SPIRXBUF:SPI串行输入缓冲寄存器。
;(7)SPITXBUF:SPI串行发送缓冲寄存器。
;(8)SPIDAT: SPI串行数据寄存器。
;(9)SPIPRI: SPI优先级控制。
;----------------------------------------------------------
;SPICCR---串行外设接口配置控制寄存器----7040H
; D7   SPI SW RESET。SPI软件复位位。用户在改变配置前,应把该位清0,
;    并在复位操作前把该位置1.
;    O    初始化串行外设接口操作标志位至复位条件;
;    1    串行外设接口准备发送或接收下一个字符。
; D6   CLOCK  POLARITY。移位时钟极性位,该位控制SPICILK信号的极性。
;    见下表:
;    SPI CHAR3 SPI CHAR2 SPI CHAR1  SPI CHAR0 字符长度
;     0   0   0   0   1
;     0   0   0   1   2
;     0   0   1   0   3
;     0   0   1   1   4
;     0   1   0   0   5
;     0   1   0   1   6
;     0   1   1   0   7
;     0   1   1   1   8
;     1   0   0   0   9
;     1   0   0   1   10
;     1   0   1   0   10
;     1   0   1   1   12
;     1   1   0   0   13
;     1   1   0   1   14
;     1   1   1   0   15
;     1   1   1   1   16
;  0  在SPICLK信号的上升沿输出数据,在下降沿输入数据。当无数
;    据发送时,SPICLK保持低电平
;  1      在SPICLK信号的下降沿输出数据,在上升沿输人数据。
;    当无数据发送时,SPICLK保持高电平。
; D5~D4  保留位。
; D3~D0  SPI CHAR3-SPI CHAR0。数据长度选择位,具体如上表。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;SPICTL---串行外设接口操作控制寄存器----7041H
; D7~D5  保留位。
; D4   OVERRUN INT ENA。超时中断使能位。
;    0  禁止超时中断
;    1  使能超时中断
; D3   CLOCK  PHASE。SPI时钟相位选择位。
;    0  正常的SPI时钟方式。
;    1  延迟半个周期的SPICLK信号
; D2   MASTER/SLAVE。SPI主从工作方式选择位。
;    0  从方式模式
;    1  主工作方式
; D1   TALK 主/从工作方式下发送允许位
;    0  禁止发送
;    .  在从工作方式下:若以前没有被配置成一般的I/O功能,则引脚
;      SPISOMI将置成高阻态
;      在主工作方式下:若以前没有被配置成一般的I/O功能,则引脚
;      SPISOMO将置成高阻态
;    1  允许发送
; D0   SPI INT ENA. SPI中断使能位。
;    0  禁止中断
;    1  允许中断
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; SPISTS---串行外设接口状态寄存器----7042H
; D7   RECEIVER OVERRUN FLAG。SPI接收过冲标志位,该位为只读只清除
;    标志位。在前一个数据从缓冲器中读出之前又完成了下一个数据的接收或
;    发送操作,则SPI硬件将设置该位。该位表明最后一个接收到的数据已经
;    被覆盖写入,并因此而丢失。如果OVERRUN INT ENA位已被置1,则
;    该位每次置位时,SPI就发生一次中断请求。该位可由以下3种操作来清
;    除:写l到该位;写0到SPI SW RESET位;系统复位。
;    OVERRUN INT ENA位被置位,则SPI将在第一次RECEIVER OVER
;    RUN FLAG置位时产生一次中断请求。如果在该标志位仍置位时又发生
;    了接收过冲事件,则SPI将不会再次申请中断请求。这就使得在每次发生
;    接收过冲事件后,必须向SPI SW RESET位写0来清除该标志位,使下一
;    次发生接收过冲事件时,又能产生过冲中断请求。换句话说,如果
;    RECEIVER o-VERRUN FLAG标志位由中断服务子程序保留设置(未被
;    清除),则当中断服务子程序退出时,将不会立即产生另一个过冲中断。
;    无论如何,在中断服务子程序期间应清除RECEIVER OVERRUN FLAG
;    标志位。因为RECEIV-ER OVERRUN FLAG标志位和SPI INT FLAG标
;    志位共用相同的中断向量。在接收下一个数据时这将减少关于中断源的任
;    何可能疑问。
;    0 无中断请求
;    1 中断请求
; D6   SPI INT FLAG。SPI中断标志位。
;       0    无中断请求
;    1    有中断请求。
; D5   TX BUF FULL FLAG。SPI发送缓冲器满标志位。当向SPITXBUF寄存器
;       写入数据时,将置位该位。当SPITXBUF寄存器中的数据移人到SPIDAT
;    寄存器中后,将自动清除该位。
;       0    发送缓冲器空;
;    1    发送缓冲器中有数据。
; D4~D0  保留位。
;----------------------------------------------------------
; D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; SPIBRR ---串行外设接口波特率设置寄存器----7044H
; D7   保留位。
;  D6~D0  SPI BIT RATE6一sPI BIT RATE0。SPI波特率设置位。
;----------------------------------------------------------
; D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; SPIRXEMU ---串行外设接口仿真接收缓冲寄存器----7046H
; D15~D0  ERXB 15~ERXB0。仿真缓冲器接收的数据。SPIRXEMU寄存器的功能
;    与SPIRXBUF基本相同,只是读SPIRXEMU时,不会清除SPIR INT FLAG
;    标志位。一旦SPIDAT已经接收到完整的数据。该数据被传送到
;    SPIRXEMU和SPIRXBUF寄存器中,在这两个寄存器中的数据可被读取:
;    与此同时SPIR INT FLAG标志位置位。创建该镜像寄存器是为了支持仿
;    真,读SPIRXBUF时将清除SPIR INT FLAG标志位。在仿真器的正常操
;    作中,靠读取控制寄存器来不断的更新这些寄存器显示在屏幕上的内容。
;    对于SPI在仿真器读取SPIRXEMU中的值来更新其显示在屏幕上的内容。
;    SPIRXEMU允许仿真器更准确的模;拟SPI的真实操作,因此建议在正常
;    的仿真器工作下读取SPIRXEMU寄存器中的值。
;----------------------------------------------------------

;SPIRXBUF ---串行外设接口接收缓冲寄存器----7047H
; D15~D0  RXB 15~RXB0。接收到的数据。一旦SPIDAT已经接收到完整的数据,
;    该数据就被传送到SPIRXBUF寄存器,供CPU读取,同时SPIR INT FLAG
;    标志被置位。因为数据首先被移位到SPI的最高有效位中,所以数据在该
;    寄存器中采用右对齐方式存储。
;----------------------------------------------------------

;SPITXBUF ---串行外设接口发送缓冲寄存器----7048H
; D15~D0  TXB 15~TXB0。发送的数据。
;----------------------------------------------------------

;SPIDAT ---串行外设接口发送/接收缓冲寄存器----7049H
;    串行外设接口发送/接收移位寄存器(SPIDAT),当SPIDAT寄存器中的
;    数据在连续个SPI一CLK周期中被移出去(最高位)。移出的SPI的每一
;    位(最高位)的同时,将有一位移人到移位寄存器的最低位。
; D15~D0  SDAT 15~SDAT0。串行数据。写入SPIDAT的操作可执行两种功能:如
;    果TALK位被置位,则该寄存器提供了将被输出到串行输出引脚的数据。
;    当SPI处于主动工作方式时,数据开始发送。在主动工作方式下,将伪数
;    据写入到SPIDAT用以启动接收器的排序功能,因为硬件不支持少于16
;    位的数据进行对齐处理,所以发送的数据必须先进行左对齐,而接收的数
;    据则用右对齐格式读取。
;----------------------------------------------------------

; SPIPRI ---串行外设接口中断优先级控制寄存器----704FH
; D7   保留位
; D6   SPI PRIORITY。SPI中断优先级选择位。
;    0 高优先级中断请求
;    1 低优先级中断请求
; D5~D4  SPI SUSP SOFT,SPI SUSP FREE。SPI仿真挂起时的操作控制位。
;    00 一旦仿真挂起,立即停止。
;    01 一旦仿真挂起;在当前的接收或发送完成后才停止。
;    10 SPI操作与仿真挂起无关。
;    11 SPI操作与仿真挂起无关。
; D3~D0  保留位
;----------------------------------------------------------
; D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

;==========================================================
; SCI----初始化
;==========================================================
;SCI模块的寄存器地址
;---------------------------------------------------------
;地址  寄存器   名称
;---------------------------------------------------------
;7050h  SCICCR  SCI通信控制寄存器
;7051h  SCICTRL1 SCI控制寄存器1
;7052h  SCIBAUD  波特率选择寄存器高8位
;7053h  SCIBAUD  波特率选择寄存器低8位
;7054h  SCICTRL2 SCI控制寄存器2
;7055h  SCIRXST  SCI接收器状态寄存器
;7056h  SCIRXEMU SCI仿真数据缓冲寄存器
;7057h  SCIRXBUF SCI接收器数据缓冲寄存器
;7059h  SCITXBUF SCI发送数据缓冲寄存器
;705Fh  SCIPRI  SCI优先级控制寄存器
;----------------------------------------------------------
;SCICCR------通信控制寄存器-----7050h
; SCICCR.7  SCI停止位选择位
;   0  一个停止位
;   1  两个停止位
; SCICCR.6  SCI奇/偶校验选择位,如果PARITY ENABLE被置位,
;     则校验才有效,即判定发送和接收的字符中1的位数为奇数或偶数。
;   0  奇校验
;   1  偶校验
; SCICCR.5  SCI奇/偶校验使能位。
;   0  禁止奇/偶校验
;   1  使能奇/偶校验
; SCICCR.4  自测试模式使能位,如果该位使能,
;     则发送引脚与接收音节在系统内部连接在一起。
;   0  禁止自测试模式
;   1  使能自测试模式
; SCICCR.3 SCI多处理器模式选择位。
;   0  选择空闲线多处理器模式;
;   1  选择地址位多处理器模式。
; SCICCR.2-0  选择字符长度(1-8位)
;   000  1位
;   001  2位
;   010  3位
;   011  4位
;   100  5位
;   101  6位
;   110  7位
;   111  8位
;----------------------------------------------------------
; D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;SCICTL1----串行通信接口控制寄存器1----7051H
; SCICTL1.7  保留位
; SCICTL1.6  SCI接收错误中断使能位。如果置位了该位,
;     当接收发生错误时RX ERROR位被置位,并且发出接收错误中断。
;   0  禁止接收错误中断
;   1  使能接收错误中断
; SCICTL1.5  SCI软件复位位(低有效)
;   o 将0写入该位来初始化SCI状态机和操作标志至复位条件。
;     SW RESET位并不影响其他任何配置位。
;   o 所有起作用的逻辑都保持确定的复位态直至将1写入SW RESET位
;    因此,系统复位后,应将该位置为1来重新使能SCI。
;   o 当接收间断检测发生后,将清除SW RESET位。
;   o SW RESET影响串行通信接口的操作标志,但不影响配置位,也不恢复
;    复位位,一旦置位了SW RESET,标志位就被不再改变直到该位被清0。
;     表  受SW RESET位影响的标志位
;    SCI标志   寄存器的位   SW复位后的值
;    TXRDY   SCICTL2.7     1
;    TX EMPTY  SCICTL2.6     1
;    RXWAKE   SCIRXST.1     0
;     PE   SCIRXST.2     0
;     OE   SCIRXST.3     0
;     FE   SCIRXST.4     0
;    BRKDT   SCIRXST.5     0
;    RXRDY   SCIRXST.6     0
;    RX ERROR  SCIRXST.7     0
; SCICTL1.4  保留位
; SCICTL1.3  TXWAKE。SCI发送器唤醒方法选择位。
;     0  没有选定的发送特征;
;     1    选定的发送特征取决由空闲线模式或地址位模式。
;     在空闲线模式下:写1到TXWAKE,然后将数据写入
;     SCITXBUF寄存器来产生一个11位数据位的空闲周期。
;     在地址位模式下:写1到TXWAKE,然后将数据写入
;     SCITXBUF寄存器并设置该帧的地址位为1。
; SCICTL1.2  SLEEP。SCI休眠位。
;     0  禁止休眠方式;
;     1  使能休眠方式。
; SCICTL1.1  TXENA。SCI发送使能位。仅当TXENA置位时,数据才能
;     从SCITXD引脚上发送出去。如果复位,则把已写入到
;     SCITXBUF寄存器中的数据发送完后才停止发送。
;     0  禁止发送;
;     1  使能发送。
; SCICTL1.0  RXENA。SCI接收使能位。从SCIRXD引脚上接收到的数
;     据送到接收移位寄存器,然后再送到接收缓冲器。
;     该位使能或禁止接收(传送到缓冲器)。
;     0    禁止将接收到的数据传送到SCIRXBUF和
;       SCIRXEMU接收缓冲器;
;     1    发送将接收到的数据传送到SCIRXBUF和
;       SCIRXEMU接收缓冲器。
;        清除RXENA即停止将接收到的数据传送到两个接收
;     缓冲器的操作·并将停止接收中断的产生。但是,
;     接收移位寄存器(RXSHF)仍可以继续接收SCIR-XD引脚
;     上的数据。因此,如果在接收字符期间置位RXENA,
;     则已接收到的数据将被传送到接收缓冲器SCIRXBUF和
;     SCIRXEMU中。
;----------------------------------------------------------
; D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;SCICTL2----串行通信接口控制寄存器2-----7054H
; SCICTL2.7  TXRDY。发送缓冲寄存器准备好标志位。写数据到
;     SCITXBUF寄存器的操作将自动清除该位。
;     如果TX INT ENA位被置位,则当TXRDY置位时,该标
;     志位使能发送器中断请求。通过使能SW RESET位或系统
;     复位来将该TXRDY复位。
;     0  SCITXBUF满
;     1  SCITXBUF空,准备接收下一个数据。
; SCICTL2.6  TX EMPTY.发送器标志位。
;     0  SCITXBUF寄存器、TXSHF寄存器或两者都装入了数据
;     1  SCITXBUF寄存器和TXSHF寄存器都空
; SCICTL2.5~2  保留位
; SCICTL2.1  RX/BK INT ENA。接收缓冲器/间断中断使能位。
;     该位控制着由RXRDY或RBKDT标志位置位引起的中断请求。
;     然而,Rx/BK INT ENA并不阻止这些标志位置位。
;     0    禁止RXRDY/BRKDT中断;
;     1    使能RXRDY/BRKDT中断。
; SCICTL2.0  TX INT ENA。发送缓冲器(SCITXBUF)中断使能位。
;     该位控制着TXRDY标志位引起的中断,但并不阻止
;     TXRDY标志位的置位。
;        0  禁止TXRDY中断;
;     1  使能TXRDY中断。   
;----------------------------------------------------------
; D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

 
;SCIHBAUD----串行通信接口波特率选择高字节寄存器--7052H
;----------------------------------------------------------
; D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;SCILBAUD-----串行通信接口波特率选择低字节寄存器--7053H
; SCILBAUD15~0 BAUDl5~BAUD0。串行通信接口16位波特率选择位。
;     SCIHBAUD(高字节)和SCILBAUD(低字节)连接在一起
;     形成16位波特率值。
;----------------------------------------------------------
; D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;SCIRXST------串行通信接口接收状态寄存器------7055H
; SCIRXT.7  RX ERROR。SCI接收器错误标志位。RX ERROR标志位
;     表明接收状态寄存器中的一个错误标志位被置位。
;     RX ERROR是间断检测、帧错误、过冲和校验允许标志
;     的逻辑或。该错误标志位不能被直接清除,它由有效的
;     SW RESET或系统复位来清除。
;     0   无接收错误标志被置位;
;     1   有接收错误标志被置位。
; SCIRXST.6  RXRDY。SCI接收器准备好标志位。当准备将新数据读入
;     SCIRXBUF中时,接收器置位该位。如果RX/BK INT ENA
;     位是1,将产生接收中断。RXRDY位的清除可通过读
;     SCIRXBUF寄存器、有效的SW RESET或系统复位来清除。
;     0  SCIRXBUF中元新数据;
;     1    准备从SCIRXBUF中读取新数据。
; SCIRXST.5  BRKDT。SCI间断检测标志位。产生间断条件时SCI置位该位。
;     当SCI的接收数据引脚SCIRXD在从失去第1个停止位开始后,
;     连续保持低电平至少10位时,即满足间断条件。
;     如果RX/BK INT ENA位是1,将产生接收中断。
;     但是这并不会影响接收器缓冲器的装入操作。
;     即使接收器的SLEEP位置为1·也将产生BRKDT中断。
;     该位可通过有效的SW RESET或系统复位来清除。
;     0   不满足间断条件;
;     1   满足间断条件。
; SCIRXST.4  FE。SCI帧错误标志位。当没有找到预期的停止位时.串行通信接口
;     将设置该位。只检测到第一个停止位。丢失的停止位表明启始位的同
;     步性已丢失·数据帧格式错误,该位可通过有效的SW RESET或系
;     统复位来清除。
;     0   未检测到帧错误;
;     1   检测到帧错误。
; SCIRXST.3  OE。SCI超时错误标志位。当前一个数据被CPU或DMAC完成读
;     取前,下一个数据又传送 到CSIRXEMU和SCIRXBUF寄存器中,

;     串行通信接口将设置该位。表明以前的数据被重写并丢失。该位可通
;     过有效的SW RESET或系统复位来清除。
;     0  未检测到超时错误
;     1  检测到超时错误
; SCIRXST.2  PE。SCI奇/偶校验错误标志位。当收到的数据中1的数目与它的
;     奇/ 偶校验不匹配时,该标志位被置位。地址位包括在计算之内。如
;     果奇/偶校验位的产生和检测未被使能时,则PE标志位禁止并读出
;     总为0。该位可通过有效的SWRESET或系统复位来清除。
;     0  未检测到奇/偶校验错误
;     1  检测到超时错误
; SCIRXST.1     RXWAKE。SCI接收器唤醒检测标志位。该位为1表明检测到接收
;     器唤醒条件,在地址位多处理器模式中,RXWAKE反映了保存
;     SCIRXBUF寄存器中的地址位的值。在空闲线多处理器模式中,
;     如果检测到SCIRXD数据线空闲就置位RXWAKE。
;     该位可通过下列方式之一清除:
;     在地址字节送至SCIRXBUF后传送第一个字节。
;     读SCIRXBUF寄存器。
;     有效的SW RESET.
;     系统复位。
; SCIRXST.0  保留位。
;----------------------------------------------------------
; D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;SCIRXEMU----串行通信接口接收数据缓冲寄存器----7056H

;SCIRXBUF----串行通信接口接收数据缓冲寄存器----7057H

;SCIRXBUF----串行通信接口发送数据缓冲寄存器----7059H

;SCIPRI----串行通信接口优先级控制寄存器----705FH
; SCIPRI.7   保留位
; SCIPRI.6   SCITX PRIORITY。SCI发送中断优先级选择位。
;     0  高优先级中断请求;
;     l  低优先级中断请求。
; SCIPRI.5   SCIRX PRIORITY。SCI接收中断优先级选择位。
;     0  高优先级中断请求
;     1  低优先级中断请求。
; SCIPRI.4~3  SCI SOFT和FREE。SCI仿真挂起选择位。
;     00  一旦仿真挂起,立即停止
;     10  一旦仿真挂起,在完成当前的接收/发送操作后停止
;     01  操作不受仿真挂起影响
;     11  操作不受仿真挂起影响。
; SCIPRI2~0  保留位
;----------------------------------------------------------
; D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


;
;==========================================================
; CAN----初始化
;==========================================================
;
;寄存器                       邮箱
;---------------------------------------------------------
;   MBOX0 MBOX1 MBOX2 MBOX3 MBOX4 MBOX5
;---------------------------------------------------------
;MSG IDnL 7200    7208 7210 7218 7220 7228
;MSG IDnL 7201 7209 7211 7219 7221 7229
;MSG IDnL 7202 720A 7212 721A 7222 722A
;---------------------------------------------------------
;保留位
;---------------------------------------------------------
;MBXnA  7204 720C 7214 721C 7224 722C
;MBXnB  7205 720D 7215 721D 7225 722D
;MBXnC  7206 720E 7216 721E 7226 722E
;MBXnD  7207 7207 720F 7217 7227 722F
;---------------------------------------------------------
  
;MSGIGnH----邮箱标识符高位寄存器----其中n=0~5
; D15  IDE .标识符扩展位
;   0 用标准标识符
;   1 用扩展标识符
; D14  AME。接收屏蔽使能位。这一位只与接收邮箱有关,对发送邮箱无影响。
;   0 禁止相应的标识符屏蔽,即接收邮箱的标识符必须与被接收的邮箱标识符
;    相符才能接收信息。
;   1 使能相应的标识符屏蔽,即接收邮箱可以接收与它的标识符不符的信息。
; D13  AAM。接受屏蔽使能位。这一位只与接收邮箱有关,对发送邮箱无影响。
;   0 邮箱不自动应答远程帧请求
;   1 如果接收到一个标识符匹配的远程帧,则CAN外设将发送邮箱中的数据。
; D12~0 IDH[28~26]。标识符。相对于扩展信息帧的高13位标识符;IDH[28~14]即
;   MSGIDnH[12~0]位相对于标准信息帧的11位标识符。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

;MSGIGnL----邮箱标识符高位寄存器----其中n=0~5
; D15~0 IDL[15~0]。标识符。相对于扩展信息帧的低16位标识符;与 标准信息帧无
;   关。

; MSGCTRLn----邮箱控制寄存器----其中n=0~5
; D15~0 保留位。
; D4  RTR。远程发送请求位。
;   0 数据帧
;   1 远程帧
; D3~0 DLC[3~0]。数据长度选择位。对于发送邮箱来说这几位决定发送数据的字节
;   数;对于接收邮箱则无效,即接收数据的字节数由被接收的信息决定。
;   0001 1字节  0010 2字节
;   0011  3字节  0100 4字节
;   0101 5字节  0110  6字节
;   0111  7字节  1000 8字节
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; MDER -----邮箱方向/使能控制寄存器------7100H
; D15~8 保留位。
; D7  MD3。邮箱3发送/接收配置位。上电时该位复位为0
;   0  配置成发送邮箱。
;   1  配置成接收邮箱。
; D6  MD2。邮箱2发送/接收配置位。上电时该位复位为0。
;   0  配置成发送邮箱。
;   1  配置成接收邮箱。
; D5~0 ME5~ME0。邮箱使能位。每个邮箱对应一个使能位,在初始化时必须禁止相
;   应邮箱的使能位。
;   0  禁止邮箱。
;   1  使能邮箱。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; TCR -----发送控制寄存器------7101H
;  D15~12 TA5~TA2。发送应答位。
;   如果邮箱n(n=5~2)发送信息帧成功,则Tan被置位1,并且置位邮箱中断标
;   志位MIFn,在相应中断使能的情况下将产生中断。向该位写1则复位,写入
;   0无影响。
;  D11~8 AA5~AA2。忽略应答位。
;   如果发送的信息帧被忽略,则AA n被置位,并且置位邮箱忽略应答中断标志
;   位AAIFn,在相应中断使能的情况下将产生邮箱错误中断。向该位写1则复
;   位,写入0无影响。
;  D7~4 TRS5~TRS2。邮箱发送请求位。
;    当TRSn位被置位1时,CAN控制器将发送相应发送邮箱的信息帧。
;   当该位被置位1后,则拒绝对邮箱n的信息帧进行更新,直到该位被复位。
;   CAN控制器允许不同的邮箱同时设置该位。
;   当TRSn位被置位1时,对邮箱n进行写操作无效,并且产生WDIF中断。
;   当发送成功或发送被忽略时,就自动复位该位。
;  D3~0 TRR~TRR2。发送请求复位位。
;   用户程序将设置该位,中断逻辑将清除该位,用户程序向该位写1将设置该位,
;   写0无影响。当TRRn位被置位1时,对邮箱n进行写操作无效,并且会产生
;   WDIF中断,当成功发送后,则产生邮箱中断(在相应中断使能的条件下)。
;   当信息成功发送、发送忽略丢失数据和侦测到CAN总线错误时,将复位该位。
;   当TRSn处于复位时,该位不起作用,因为当TRSn复位,TRRn也立即复位。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; RCR -----接收控制寄存器------7102H
;  D15~12 RFP3~RFP0。远程请求悬挂位。
;   无论何时CAN外设接收到远程帧请求时将把相应接收邮箱n的RFPn置位。
;   如果用户程序要清除该位,同时CAN外设要设置该位,则该位被清除。
;   如果MSGIDnH寄存器中的AAM位没有被置位(即不具有自动发送应答信号
;   功能),则用户程序必须在远程请求悬挂事件发生后清除该位。
;   如果信息被成功发送,则CAN外设清除该位。在发送过程中不能产生远程请
;   求中断。
;  D11~8 RML3~RML0。接收到的信息丢失标志位。
;   当接收邮箱孢的旧信息被新接收到的信息覆盖时,该位将置位。如果覆盖保
;   护控制位OPCn为1,则不发生信息覆盖,且新的信息将丢失。
;   该位只能由用户程序复位,并且由中断逻辑置位。当写1到RMPn位,将清
;   除该位。如果用户程序要清除该位,同时CAN外设要置位该位,则该位被置
;   位。
;   如果1个或多个RMLn位被置位,同时将置位CAN中断标志寄存器(CAN_IFR)
;   中的RMLIF标志位。CAN中断屏蔽寄存器(CAN_IMR)中的RMLIM使能,则
;   将产生中断。
;  D7~4 RMP3~RMP0。接收信息悬挂位。
;   如果被接收的信息帧存储到接收邮箱n中,将把RMPn置位。
;   该位只能由用户程序复位,并且由中断逻辑置位。当写1到RMPn位,将清
;   除RMPn和RLMn位。如果用户程序要清除该位,同时CAN外设要置位该位,
;   则该位被置位。
;   如果OPCn位为0,则新信息将覆盖旧信息,并且相应的RMLn位被置位。
;   如果CAN中断使能且相应的中断没有被屏蔽,则RMLn位被置位的同时将产
;   生中断。
;  D3~0 OPc3~OPC0。信息覆盖保护使能位。
;   如果OPCn位为1,则邮箱n中的旧信息被保护,即不能被新信息覆盖。从而
;   查找下一个标识符匹配的接收邮箱,如不匹配则信息丢失。
;   如果OPCn位为O,则邮箱n中的旧信息被覆盖。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; MCR -----主控制寄存器------7103H
;  D15~14 保留位。
; D13  SUSP。仿真挂起操作选择位。这一位对接收邮箱无效。
;   0  Solt模式,即一旦仿真挂起,就把当前的信息完全发送完毕才关闭
;     CAN外设;
;   1  Free模式,即CAN外设继续运行不受仿真挂起影响。
; D12  CCR。改变配置请求位。当CAN控制器处于脱离CAN总线状态或ABO位为
;   0时,将把该位自动置位。当CAN控制器恢复总线时,该位被清除。
;   0  CAN控制器处于正常工作方式;
;   1  CAN控制器处于复位工作方式,即在GSR寄存器的CCE位为1时,
;     允许对位定时器(BcRn)进行配置,此时CAN控制器处于脱离CAN
;     总线状态,因此当配置完位定时器后,应将该位清0,使CAN控制
;     器恢复总线。
; D11  PDR。低功耗模式请求位。在进入休眠模式之前,用户程序必须将该位置为1,
;   当相应的应答位PDA被置位后,CAN控制器就进入休眠模式。
;   0  禁止低功耗模式(CAN控制器处于正常工作模式)
;   1  使能低功耗模式。
; D10  DBO。数据字节次序。
;   0  接收或发送的数据排列成以下的次序:3-2-1一O一7-6-5-4;
;   1  接收或发送的数据排列成以下的次序:0-1-2-3-4-5-6-7。
; D9  WUBA。总线唤醒位。
;   0  只有在用户程序把PDR位清0后,CAN控制器退出低功耗模式
;   1  当检测到("AN总线上任何有效信息时,cAN控制器就退出低功耗模
;     式。
; D8  CDR。数据域改变请求位。当要改变邮箱的数据域时应把该位置为1,CAN
;   控制器就允许对数据域进行更改,并且在此期间发送被禁止,所以更新完数据
;   域后应将该位清0。
;   0  CAN控制器处于正常工作模式;
;   1  数据域改变请求使能。
; D7  ABO。自动恢复总线位。
;   0  在CCR位被复位后和在总线上产生连续128×11个隐性位后,CAN
;     控制器恢复总线;
;    1  在CAN控制器脱离总线后的连续128×11个隐性位之后,cAN控制
;     器恢复总线。
; D6  STM。自测试模式使能位。
;   0  CAN控制器处于正常工作模式;
;   1  CAN控制器处于自测试模式,在这种模式下CAN控制器能自己产生
;     应答信号,因此不需要与cAN总线相连,信息帧没有真正发送出去,
;     但是信息帧能被相应的邮箱接收,在自测试模式下,不能进行远程帧
;     悬挂自动应答,也不能接收被接收的信息帧的标识符。
; D5~2 保留位
; D1~0 MBNR。邮箱2和邮箱3选择位。对邮箱2或3的数据域进行写操作及配置远
;   程帧悬挂。
;   00 无效
;   01 无效
;   10 选择邮箱2
;   11 选择邮箱3
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; BCR2 -----位配置寄存器2------7104H
; D15~8 保留位。
; D7~0 BRP[7~0]。波特率预分频位。
;   BRP[7~0]决定着CAN控制器的时间片(TQ),TQ定义为:
;     TQ=(BRP+1)/ICLK
;   这里ICLK为CAN控制器的系统时钟,也就是DSP的系统时钟。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; BCR1 -----位配置寄存器1------7105H
;  D15~11 保留位。
; D10  SBG。边沿重同步方式选择位。
;    0  CAN控制器仅在下降沿时发生重新同步
;    1  CAN控制器在上升沿和下降沿时发生重新同步
;  D9~8 SJW[1~0]。同步跳转宽度选择位。
;   为了补偿在不同总线控制器的时钟振荡器之间的相位偏移,任何总线控制器必
;   须在当前传送的相关信号边沿重新同步。同步跳转宽度定义了每一位周期可以
;   被重新同步缩短或延长的时钟周期的最大数目,同步跳转宽度可设置为1~4
;   个TQ值。
; D7  SAM。采样次数选择位。
;   0  CAN控制器仅采样1次
;   1  CAN控制器采样3次,并以多数为准
; D6~3 TSEG1[3~0]。时间段1。其包含传播延时时间段(PROG SEG)和相位延时时
;   间段1(PHASE SEG1)。
;   TSEG1[3~0]决定时间段1有多少个TQ时间片,时间段1的值可编程为3到
;   16个TQ时间片,且时间段1必须大于或等于时间段2。
;  D2~0 TSEG2[2~0]。时间段2。其决定着相位延时时间段2(PHASE SEG2)的长度。
;   在下降沿时发生重新同步(即SBG=0)时,时间段2的最小值为:
;     TSEG2min=1+SJW
;   因此时间段2的值可编程为2~8个TQ时间片,且满足以下条件:
;     (SJW+BSG+1)≤TSEG2≤8
;     TSEG2≤TSEG1
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

;ESR -----错误状态寄存器------7106H
;  D15~9 保留位。
; D8  FER。形式错误。  
;   0  CAN控制器进行正确的发送和接收
;   1  总线上存在一种形式错误,即固定格式的位场中出现1位或多位非法
;     位时,就产生一个形式错误
; D7  BEF。位错误。 
;   0  CAN控制器进行正确的发送和接收
;   1  在仲裁域外接收到的位和发送的位不匹配,或在发送仲裁期间一个显
;     性位被发送,但接收到的是一个隐性位。
; D6  SAl。显性保留错误。
;   0  CAN控制器检测到一个隐性位;
;   1  CAN控制器没有检测到一个隐性位,当硬件复位、软件复位或总线
;     关闭时SAl置为1。
; D5  CRCE。CRC错误。
;   0  CAN控制器没有发生CRC错误
;   1  CAN控制器发生了CRC错误。
; D4  SEG。填充错误。
;   0  无填充位错误
;   1  违反了填充位规则,即发生了填充错误。
; D3  ACKE。应答错误。
;    0  CAN控制器接收到应答信号
;   1  CAN控制器没有接收到应答信号
;  D2  BO。总线关闭状态。
;    0  操作正常,即在线
;   1  CAN总线发生错误,当发生错误计数器的值达到256时,就发生了
;     总线关闭。在总线关闭期间CAN控制器不能进行发送和接收操作。
;     清除CCR位或设置ABO位将恢复总线,一旦总线恢复,该位自动
;     清0。
;  D1  EP。消极错误状态。
;    0  CAN控制器不在消极错误模式
;    1  CAN控制器处于消极错误模式
;  D1  EW。警告状态。
;    0  接收和发送错误计数器的值都小于96
;    1  至少有一个错误计数器的值达到96
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

;GSR -----全局状态寄存器------7107H
;  D15~6 保留位。
; D5  SMA。悬挂模式应答。
;   0  CAN控制器不处于悬挂模式
;   1  CAN控制器处于悬挂模式。
; D4  CCE。改变配置使能位。
;   0  禁止对配置寄存器进行写操作
;   1  允许对配置寄存器进行写操作。
; D3  PDA。低功耗模式应答。
;   0  正常工作模式
;   1  ClAN控制器已进入低功耗模式。
;  D2  保留位。
;  D1  RM。CAN控制器处于接收模式。这一位反映CAN控制器的实际操作与邮箱
;   的配置无关。
;    0  CAN控制器没有接收信息
;   1  CAN控制器正在接收信息。
;  D0  TM。CAN控制器处于发送模式。这一位反映CAN控制器的实际与邮箱
;   的配置无关。
;    0  CAN控制器没有接收信息
;   1  CAN控制器正在接收信息。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

;CEC -----错误计数寄存器------7108H
; CAN_IFR ----- CAN中断标志寄存器------7109H
;  D15~14 保留位。
;  D13~8 MIF5~MIF0。邮箱5~0中断标志位(接收或发送)。
;    0  没有信息被发送或接收
;   1  相应的邮箱成功地发送或接收了信息。
; D7  保留位
; D6  RMLIF。接收丢失中断标志位。
;    0  没有信息丢失
;   1  至少一个接收邮箱发生了接收上溢。
; D5  AAIF。忽略应答中断标志位。
;    0  发送操作没有忽略
;   1  发送操作被忽略。
; D4  WDIF。写拒绝中断标志。
;    0  CAN控制器处于休眠模式或正常工作模式;
;   1  CAN控制器离开休眠模式。
; D3  WUIF。唤醒中断标志位。
;    0  CAN控制器处于休眠模式或正常工作模式;
;   1  CAN控制器离开休眠模式。
; D2  BOIF。总线关闭中断标志位。
;    0  CAN控制器处于在线状态;
;   1  CAN控制器进入总线关闭状态。
; D1  EPIF。 消极错误中断标志位。
;    0  CAN控制器不处于消极错误模式
;   1  CAN控制器进入消极错误模式。
; D0  WLIF。错误警告中断标志位。
;    0  错误计数器的值没有达到错误警告值
;   1  至少一个错误计数器的值达到错误警告值。

; C AN_IMR ----- CAN中断屏蔽寄存器------710AH
;  D15  MIL。邮箱中断优先级选择位(对于邮箱5~0的中断标志位MIF5~MIF0)
;    0  高中断优先级
;   1  低中断优先级。
; D14  保留位
;  D13~8 MIM5~MIM0。邮箱5~0中断屏蔽位。
;    0  禁止中断
;   1  使能中断。
; D7  ElL。错误中断优先级选择位。
;    0  高中断优先级
;   1  低中断优先级。
; D6  RMLIM。接收丢失中断屏蔽位。
;    0  禁止中断
;   1  使能中断。
; D5  AAIM。忽略应答中断屏蔽位。
;    0  禁止中断
;   1  使能中断。
; D4  WDIM。写拒绝中断屏蔽位。
;    0  禁止中断
;   1  使能中断。
; D3  WUIM。唤醒中断屏蔽位。
;    0  禁止中断
;   1  使能中断。
; D2  BOIM。总线关闭中断屏蔽位。
;    0  禁止中断
;   1  使能中断。
; D1  EPIM。消极错误中断屏蔽位。
;    0  禁止中断
;   1  使能中断。
; D0  WLIM。错误警告中断屏蔽位。
;    0  禁止中断
;   1  使能中断。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; LAMn_H ----- 局部接收屏蔽高位寄存器n------710BH、710DH
;  D15  LAMI。局部接收屏蔽标识符扩充位。
;    0  接收邮箱是接收标准信息帧还是扩展信息帧由被接收信息的这一位
;     (LAMl)决定
;   1  标准信息帧和扩展信息帧都可以接收,当接收到扩展信息帧时,接收
;     到29位标识符都可以进行滤波处理,当接收到标准信息帧时,接收
;     到11位标识符只与局部接收屏蔽高位寄存器中的LAMn-H[12~2]
;     位进行滤波处理。
;  D14~13  保留位
;  D12~0 LAMn[28~16]。高13位局部接收屏蔽位。
;    0  相应接收标识符的位值必须相符才能被接收,即接收严格匹配的标识
;     位
;   1  相应接收标识符的位值不相符也能接收,即可接收0或1。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------

; LAMn_L -----局部接收屏蔽低位寄存器n ------710CH、710EH
;  D12~0 LAMn[15~0]。低16位局部接收屏蔽位。
;    0  相应接收标识符的位值必须相符才能被接收,即接收严格匹配的标识
;     位
;   1  相应接收标识符的位值不相符也能接收,即可接收0或1。
;----------------------------------------------------------
; D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
;----------------------------------------------------------
;
;----------------------------------------------------------


   ret
 

分享到:

上一篇:浅谈改善变频器性能的若干技术

下一篇:变频器的造型设计

评论 (0条) 发表评论

抢沙发,第一个发表评论
验证码