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

📄 drivers.h

📁 语音LPC压缩算法源代码(C语音)
💻 H
字号:
#ifndef _DRIVERS_#define _DRIVERS_#include <std.h>/* data structure type define for TLC32044 registers */typedef struct {	Uns	    ra;	Uns	    rb;	Uns	    ta;	Uns	    tb;	Uns	    taP;	Uns	    raP;	Uns	    control;	} TLC_Regs;/* data structure type define for AIC driver Isr data object */	typedef struct{	Uns	    size;		/* length of buffers					*/	Uns	    count;		/* number of samples in current buffer	*/	Ptr	    present;	/* pointer to 'current' working buffer	*/	Ptr	    next;		/* pointer to next avalible free buffer	*/	Bool	swap;		/* buffer swap flag (signal get/put)	*/	Uns	    *xfer_reg;	/* C3x data tx or data rx register		*/    Uns     isr_count;  /* interrupt counter                    */} AIC_IsrObj;/* data structure type define for AIC driver user paramsters data object */typedef struct{	Bool    	sync_isr;		/* bool for common tx and rx isr's		*/	Bool	    tx_only;		/* bool for only using tx opperations	*/	Bool	    rx_only;		/* bool for only using rx opperations	*/	Uns	        chan_id;		/* which AIC channel is being used		*/	Uns	        tx_size;		/* size of buffers to put				*/	Uns	        rx_size;		/* size of buffers to get				*/	TLC_Regs	aic_regs;		/* TLC32044 registers data structure	*/} AIC_Attrs;/* data structure type define for AIC driver data object */typedef struct{	Uns	        port;			/* which C3x serail port is being used	*/	Uns	        rx_mask;		/* rx interrupt ie mask value			*/		Uns	        tx_mask;		/* tx interrupt ie mask value			*/	Bool		tx_first;		/* flag for first call to AIC_get()		*/	Bool		rx_first;		/* flag for first call to AIC_put()		*/	AIC_Attrs	attrs;			/* user configurable parameters			*/ 	AIC_IsrObj	rx_obj;			/* rx Isr data structure				*/	AIC_IsrObj	tx_obj;			/* tx Isr data structure				*/	AIC_IsrObj	*both_obj[2];	/* sync_isr tx/rx Isr data structure	*/} AIC_DriverObj;typedef AIC_DriverObj *AIC_Driver;/* data structure type define for C3x serial port registers */typedef struct{	Uns	    control;	/* global control	 	 		*/	Uns	    space1;		/* C3x reserved space			*/	Uns	    tx_ctrl;	/* FSX/DX/CLKX port control 	*/	Uns	    rx_ctrl;	/* FSR/DR/CLKR port control		*/	Uns	    time_ctrl;	/* R/X timer control			*/	Uns	    time_cnt;	/* R/X timer count				*/	Uns	    time_perd;	/* R/X timer period				*/	Uns	    space2;		/* C3x reserved space			*/	Uns	    dtr;		/* data transmit register		*/	Uns	    space3;		/* C3x reserved space			*/	Uns	    space4;		/* C3x reserved space			*/	Uns	    space5;		/* C3x reserved space			*/	Uns	    drr;		/* data receive register		*/		} SER_Regs;/* data structure type define for serial port driver Isr data object */	typedef struct{	Uns	        size;		/* length of buffers					*/	Uns	        count;		/* number of samples in current buffer	*/	Ptr		    present;	/* pointer to 'current' working buffer	*/	Ptr         next;		/* pointer to next avalible free buffer	*/	Bool		swap;		/* buffer swap flag (signal get/put)	*/	Uns	        *xfer_reg;	/* C3x data tx or data rx register		*/    Uns         isr_count;  /* interrupt counter                    */    Uns         isr_size;   /* SER frame count for clock comp       */    Uns         isr_length; /* # num of int's to check for clk cmp  */    AIC_IsrObj  *aic_obj;   /* pointer to aic isr obj for clock cmp */	Uns	        mask;   	/* tx/rx interrupt ie mask value		*/	Uns	        buff_aval;	/* next tx buffer avalible flag			*/} SER_IsrObj;/* data structure type define for serial driver user paramsters data object */typedef struct{	Bool		tx_only;		/* bool for only using tx opperations	*/	Bool		rx_only;		/* bool for only using rx opperations	*/	Uns	        chan_id;		/* which serial channel is being used	*/	Uns	        tx_size;		/* size of buffers to put				*/	Uns	        rx_size;		/* size of buffers to get				*/   	Bool		tx_clk_comp; 	/* bool for SER tx clock compensation  	*/	Bool		rx_clk_comp;   	/* bool for SER rx clock compensation   */	Uns	        rx_clk_cnt;		/* clock compensation rx frame count    */	Uns	        tx_clk_cnt;		/* clock compensation tx frame count    */	SER_Regs	ser_regs;		/* C3x serial port data structure		*/} SER_Attrs;/* data structure type define for serial port driver data object */typedef struct{	Uns	        port;			/* which C3x serail port is being used	*/	Bool		rx_first;		/* flag for first call to SER_get()		*/	Bool		tx_first;		/* flag for first call to SER_put()		*/    SER_Attrs	attrs;			/* user configurable parameters			*/ 	SER_IsrObj	rx_obj;			/* rx Isr data structure				*/	SER_IsrObj	tx_obj;			/* tx Isr data structure				*/} SER_DriverObj;typedef SER_DriverObj *SER_Driver;	extern Void null_isr(Void);extern Void set_isr(Uns vector, Void isr(Void), Arg argument);extern Void fix_buffer(Ptr buffer, Uns size);extern Void float_buffer(Ptr buffer, Uns size);extern Void scale_buffer(Float *input, Float *output, Uns size, Float scale);extern Void enable_int(Uns mask);extern Void prime_int(Uns mask);extern Void disable_int(Uns mask);extern Void global_enable(Bool flag);#define AIC_getattrs(AICOBJ, AICATTRS) (*(AICATTRS) = (AICOBJ)->attrs)#define AIC_setattrs(AICOBJ, AICATTRS) ((AICOBJ)->attrs = *(AICATTRS)) extern AIC_Attrs AIC_ATTRS;extern AIC_Driver AIC_create(AIC_Attrs *attrs);extern Void AIC_delete(AIC_Driver driver);extern Bool AIC_get(AIC_Driver driver, Ptr *buffer);extern Bool AIC_put(AIC_Driver driver, Ptr *buffer);extern Void AIC_tx_isr(Void);extern Void AIC_rx_isr(Void);extern Void AIC_both_isr(Void);#define SER_getattrs(SEROBJ, SERATTRS) (*(SERATTRS) = (SEROBJ)->attrs)#define SER_setattrs(SEROBJ, SERATTRS) ((SEROBJ)->attrs = *(SERATTRS)) extern SER_Attrs SER_ATTRS;extern SER_Driver SER_create(SER_Attrs *attrs);extern Void SER_delete(SER_Driver driver);extern Bool SER_get(SER_Driver driver, Ptr *buffer);extern Bool SER_put(SER_Driver driver, Ptr *buffer);extern Void SER_tx_isr(Void);extern Void SER_rx_isr(Void);extern Void SER_link_AIC(SER_Driver ser_drv, AIC_Driver aic_drv, SER_Attrs *attrs);#endif /* _DRIVERS_ */ 

⌨️ 快捷键说明

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