?? ac01.asm
字號:
;******************************************************************************/
;三角波發生為:
; ; ;
; ; ; ; ;
; ; ; ; ;
; ; ; ;
;要改出來的三角波發生為:
; ; ; ;
; ; ; ; ; ;
; ; ; ; ; ;
; ; ; ;
;******************************************************************************/
.width 80
.length 55
.title "main program of asm for code generate"
.mmregs
.global _Encoder
.global BSP_SEND
BSP_TRANSMIT_ONLY .set 0080H ;int control
;**********************************************************************/
;* Register of vc5416 MMR */
;**********************************************************************/
;MCBSP2 CONFIGURATION REGISTER NAME ADDRESS INDEX:
DXR1_2 .set 33h
SPSA2 .set 34h
SPSD2 .set 35h
SPCR12 .set 00h
SPCR22 .set 01h
XCR12 .set 04h
XCR22 .set 05h
SRGR12 .set 06h
SRGR22 .set 07h
MCR22 .set 09h
XCERA2 .set 0Ah
XCERB2 .set 0Bh
PCR2 .set 0Eh
STEP .set 0020h
LOW_LIM .set 0101h
HIGH_LIM .set 7EFFh
;HIGH_LIM .set 3FFFh
.data
COUNTER: .word 0h
FLAG: .word 0h
.text
_Encoder:
STM #01A0H,PMST
SSBX INTM
SETREG:
RSBX INTM
STM #BSP_TRANSMIT_ONLY,IFR
STM #BSP_TRANSMIT_ONLY,IMR
STM SPCR22,SPSA2
STM #0000000000000000B,SPSD2
;000000 RSRV
;~~~~~~1 FREE MODE
;~~~~~~~0 NO SOFT MODE
;~~~~~~~~0 FRAME SY RESET
;~~~~~~~~~0 SAMPLE GENERATOR RESET
;~~~~~~~~~~00 XINT BY XRDY(END-OF-WORD)
;~~~~~~~~~~~~0 X SY ERROR
;~~~~~~~~~~~~~00 READ ONLY
;~~~~~~~~~~~~~~~0 TXD /RESET
STM SPCR12,SPSA2
STM #0000000000000000B,SPSD2
;0 NO DIG LOOP BACK
;~01 接收符號擴展
;~~~00 NO CLK STOP MODE
;~~~~~000 RSRV
;~~~~~~~~0 DX ENABLER
;~~~~~~~~~0 A-BIS
;~~~~~~~~~~00 R INT
;~~~~~~~~~~~~0 R SY ERROR
;~~~~~~~~~~~~~00 READ ONLY
;~~~~~~~~~~~~~~~0 REC /RESET
STM #XCR12,SPSA2
STM #0000001101000000B,SPSD2
;0 RSRV
;~0000011 XFLEN=(3+1)WORD
;~~~~~~~~010 WORD LENGTH 16BITS
;~~~~~~~~~~~00000 RSRV
STM #XCR22,SPSA2
STM #0000001101000000B,SPSD2
;0 SINGLE_PHASE
;~0000011 XFLEN2
;~~~~~~~~010 WORD LENGTH(16BIT)
;~~~~~~~~~~~00 NO COMPANDING,MSB FIRST
;~~~~~~~~~~~~~0 TRANS FRAME SY NOT IGNORED
;~~~~~~~~~~~~~~00 0 BIT DELAY
STM SRGR12,SPSA2
STM #0001111100000000B,SPSD2
;00011111 FRAME WIDTH 63+1=64
;~~~~~~~~00000000 01H DIV FROM CLK TO SAMPLE GENERATOR
STM SRGR22,SPSA2
STM #0000000000011111B,SPSD2
;00 SAMPLE GENERATOR CLK SY(NO USE IN INT CLK DRV)
;~~0 SAMPLE GENERATOR CLK FROM EXT
;~~~0 TRANSMIT SY IS DRIVEN BY DXR-XSR
;~~~~000000011111 THE NEXT SY BECOMES ACTIVE 64 SAM_GEN PERIOD
STM PCR2,SPSA2
STM #0000000010000011B,SPSD2
;00 RSRV
;~~0 DX NOT USE AS A GPIO
;~~~0 RX NOT USE AS A GPIO
;~~~~00 SY IS GENRATE BY EXT CLK
;~~~~~~00 CLKX/R IS GENERATE BY EXT CLK
;~~~~~~~~0 RSRV
;~~~~~~~~~000 READ ONLY
;~~~~~~~~~~~~0011 TRANSMIT AT FALLING EDGE
NOP
NOP
STM SPCR22,SPSA2
STM #0000000100000001B,SPSD2
LOOP:
NOP
NOP
BUFFWREND:
RET
BSP_SEND:
LD *(COUNTER),A ;讀取計數器
AND #000000FFFFH,A ;取低16位
; CMPM *(FLAG),#1H ;判斷上升沿
; BC FALL,TC
ADD #STEP,A ;累加步長
STL A,*(COUNTER) ;存計數器
STLM A,DXR1_2 ;送入串行發送寄存器
; SUB #HIGH_LIM,A,B ;判斷是否到達最高點
CMPM *(COUNTER),#2000H
BC STAYR,NTC
ST #0000H,*(COUNTER) ;改變標志位,開始下降沿
STAYR: RETE
;FALL: SUB #STEP,A
; STL A,*(COUNTER) ;存計數器
; STLM A,DXR1_2 ;送入串行發送寄存器
; CMPM *(COUNTER),#8100H ;判斷是否到達最高點
; SUB #LOW_LIM,A,B
; BC STAYF,NTC
; ST #0,*(FLAG) ;改變標志位,開始下降沿
;STAYF: RETE
.end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -