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

📄 spkintr4.s

📁 The combined demo is dedicated for S1C33L05, so DMT33L05 should be used to load and run the demo. F
💻 S
字号:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////
//////// SpkIntr4.s (input unsigned 16-bit, output unsigned 9bit)
////////
////////	1998 Oct. 29	H.Matsuoka	Ver.0.1
////////	1999 Mar.  9	H.Matsuoka	Ver.0.2
////////	1999 Nov. 24	H.Matsuoka	Ver.0.3
////////	2003 Dec. 03	CH.Yoon 	Ver.0.4    port to GNU33
////////

#include  "slcomm.def"
#include  "slintr.def"

#define TIMER16_ODD_UNDERFLOW	0x40
#define COMPARE_A16_1			0x00048188	// 16bit Timer 1 (Output)
#define TIMER16_5_IFLAG 		0x00040284	// 16bit Timer 5 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// Global Symbols
//////
		.global SpkIntr4

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////// SpkIntr4 
//////
SpkIntr4:
		pushn	%r3

		xld.w	%r0,SPK_DATA_0		// SPK_DATA_#

		ld.w	%r2,[%r0]			// Read HEAD
		xld.w	%r3,TIMER16_ODD_UNDERFLOW
		xld.w	%r1,TIMER16_5_IFLAG // Int factor flag reg
		ld.b	[%r1],%r3			// clear Int factor flag
	   
		ld.uh	%r3,[%r2]+			// Data : unsigned 16-bit
		xadd	%r3,0x40
		srl 	%r3,7				// Data >>= 7//  Change 16bit to 9bit
 
		xld.w	%r1,COMPARE_A16_1	// PWM data write reg
		ld.h	[%r1],%r3			// Data : unsigned 9bit
									// Write output data 

		ext 	OFFSET_TAIL 		// read TAIL
		ld.w	%r3,[%r0]
		cmp 	%r2,%r3 			// if (HEAD >= TAIL) Next
		jruge	PacketEnd
		ld.w	[%r0],%r2			// update HEAD
		popn	%r3
		reti

PacketEnd:								  // Next
		popn	%r3
		pushn	%r15
		ld.w	%r0,%ahr
		ld.w	%r1,%alr
		pushn	%r1
		xld.w	%r6,SPK_PARAMS_0			// SpkParams
		xld.w	%r7,TIMER16_5_IFLAG		// IFlagReg
		xld.w	%r8,TIMER16_ODD_UNDERFLOW	// IFlag MaskData
		ld.w	%r9,[%sp+0x12] 			// OldPSR
		xcall	QueueNext
		popn	%r1
		ld.w	%alr,%r1
		ld.w	%ahr,%r0
		popn	%r15
		reti


⌨️ 快捷键说明

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