⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ac01.asm

📁 TM公司CCS平台上开发的DSP波形发生器程序。
💻 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 + -