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

📄 macro.h54

📁 c5x中关于codec的实验
💻 H54
字号:
;******************************************************************************
;               		SJTU DSP Tech. Center
;        Copyright (c) 2002 SJTU DSP Tech. Center. All Rights Reserved.
;  History:
;		Date		Authors			Changes
;		2003/08/30	Fu Xuan			Created.
;		2007/09/23	Chen Yu			Changed.
;******************************************************************************
	.mmregs


	;LED0 shines if port_addr is USER_REG
LED0_ON		.macro	port_addr
	portr	port_addr, *(AL)
	or		#0x0001, A					;USERLED0=1
	portw	*(AL), port_addr
			.endm						;end of LED0_ON

LED1_ON		.macro		port_addr
	portr	port_addr,	*(AL)
	or		#0x0002,	A
	portw	*(AL),		port_addr
			.endm

LED2_ON		.macro		port_addr
	portr	port_addr,	*(AL)
	or		#0x0004,	A
	portw	*(AL),		port_addr
			.endm

LED3_ON		.macro		port_addr
	portr	port_addr,	*(AL)
	or		#0x0008,	A
	portw	*(AL),		port_addr
			.endm

	;set RRST/XRST to enable McBSP
McBSP2_ENABLE	.macro	aux_reg
	stm		#SPSA2, aux_reg				;McBSP1子地址寄存器
	st		#0, *aux_reg+				;选中控制寄存器SPCR12
	orm		#0x0001, *aux_reg-			;/RRST=1接收部分使能
	st		#1, *aux_reg+				;选中控制寄存器SPCR22
	orm		#0x0001, *aux_reg-			;/XRST=1发送部分使能
			.endm						;end of McBSP1_ENABLE

	;reset RRST/XRST to disable McBSP
McBSP2_DISABLE	.macro	aux_reg
	stm		#SPSA1, aux_reg				;McBSP1子地址寄存器
	st		#0, *aux_reg+				;选中控制寄存器SPCR11
	andm	#0xfffe, *aux_reg-			;/RRST=0接收部分复位
	st		#1, *aux_reg+				;选中控制寄存器SPCR21
	andm	#0xfffe, *aux_reg-			;/XRST=0发送部分复位
			.endm						;end of McBSP1_DISABLE

	;enable channel channel_number of DMA
CHANNEL_ENABLE	.macro	channel_number
	ldm		DMPREC, A
	or		channel_number, A
	stlm	A, DMPREC
			.endm						;end of CHANNEL_ENABLE

	;set cntl1 to let 3 LEDs shine, then shuts after a while if port_addr is CNTL1
LEDS_CHECK	.macro	port_addr
	;check LED0, LED1, LED2 and LED3
	portr	port_addr, *(AL)
	or		#0x000F, A					;USR_LED0=USR_LED1=USR_LED2=USR_LED3=1
	portw	*(AL), port_addr			;LED0, LED1, LED2 and LED3 shine

	stm		#50, AR1
delay_out_loop:
	stm		#1000, BRC
	rptb	delay_inner_loop-1
	rpt 	#1000
	nop
delay_inner_loop:
	banz	delay_out_loop, *AR1-		;shine for a while
	
	portr	port_addr, *(AL)
	and		#0xFFF0, A					;USR_LED0=USR_LED1=USR_LED2=USR_LED3=0
	portw	*(AL), port_addr			;LED0, LED1, LED2 and LED3 shut

	stm		#50, AR1
delay_out_loop1:
	stm		#1000, BRC
	rptb	delay_inner_loop1-1
	rpt 	#1000
	nop
delay_inner_loop1:
	banz	delay_out_loop1, *AR1-		;shut for a while
			.endm						;end of LEDS_CHECK

;end of macro.h54

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -