《语音通信系统代码1》由会员分享,可在线阅读,更多相关《语音通信系统代码1(29页珍藏版)》请在金锄头文库上搜索。
1、语音通信系统代码语音通信系统代码 1 1#include “HAL.H“#include “SMPro.H“#include “USB.H“#include “CHAP9.H“#include “VDOR.H“#include “Isp1581.h“#include “main.h“#include “Hal4sys.h“#include “Iso.h“GLOBE_VARIABLE globe_variable;extern unsigned long lClockTicks;ZBOARDFLAGS bdata bZBoardFlags;extern CONTROL_XFER ControlD
2、ata;IO_REQUEST idata ioRequest;extern unsigned char idata last_key;/*-以下是 main 主函数的示例,读者朋友可根据自己工程的需要自行改编-*/void main (void)unsigned short temp2;bZBoardFlags.bits.At_IRQL1 =1;system_init(); /此处是 C6713B 系统初始化的函数,读者朋友根据自己系统的特点来编写temp2=ISP1581_ReadChipID(); bZBoardFlags.bits.At_IRQL1 =0;ISP1581_ResetDev
3、ice();Device_Initiate();ENABLE_INTERRUPTS;/*主循环*/while(TRUE)if (bZBoardFlags.bits.bTimer)DISABLE_INTERRUPTS;bZBoardFlags.bits.bTimer = 0;ENABLE_INTERRUPTS;if(bZBoardFlags.bits.bConfiguration)check_key_LED();if (bZBoardFlags.bits.bBus_Reset)DISABLE_INTERRUPTS;bZBoardFlags.bits.bBus_Reset = 0;ENABLE_I
4、NTERRUPTS;Isr_BusReset(); /USB 总线重启if (bZBoardFlags.bits.DCP_state = USBFSM4DCP_REQUESTPROC bZBoardFlags.bits.CONTROL_HANDLE_DONE = 0;DeviceRequest_Handler();LowerIRQL(); if (bZBoardFlags.bits.setup_dma = 1 bZBoardFlags.bits.setup_dma = 0;setup_dma();LowerIRQL(); if (bZBoardFlags.bits.DCP_state = US
5、BFSM4DCP_CONTROLOUTDONE)Chap9_ControlWriteHandshake();if (bZBoardFlags.bits.ISO_CONFIG)bZBoardFlags.bits.ISO_CONFIG = 0;ISO_CONFIG(); void ISP1581_Initiate(void)ISP1581_SetAddressEnable(0x0, 0x01);ISP1581_SetTestMode(0); ISP1581_SetMode(mode_glintena|mode_softct);ISP1581_SetIntConfig(0x0|intcfg_cdbg
6、mod_as/ control interrupt on ack and stall|intcfg_ddbgmodin_a/ IN data interrupt on ack only|intcfg_ddbgmodout_asy/ OUT data on ack and stall and nyet intertupt);ISP1581_SetIntEnableLow(int_busreset|int_susp|int_resume|int_hs_stat|int_dma|int_ep0set|int_ep0rx|int_ep0tx|int_ep1rx|int_ep1tx|int_ep2rx|
7、int_ep2tx);ISP1581_SetIntEnableHigh(int_ep3rx|int_ep3tx|int_ep4rx|int_ep4tx|int_ep5rx|int_ep5tx|int_ep6rx|int_ep6tx|int_ep7rx|int_ep7tx);ISP1581_ConfigEndpoint();ISP1581_SetDMAConfig(dmacfg_width8|dmacfg_modediorw|dmacfg_burst0);ISP1581_SetDMAHDCfg(dmahd_dreqpolh|dmahd_eotpolh);void ISP1581_ConfigEn
8、dpoint(void)ISP1581_SetEndpointConfig(EPINDEX4EP01OUT, 0);ISP1581_SetEndpointConfig(EPINDEX4EP01IN, 0);ISP1581_SetEndpointConfig(EPINDEX4EP02OUT, 0);ISP1581_SetEndpointConfig(EPINDEX4EP02IN, 0);ISP1581_SetEndpointConfig(EPINDEX4EP03OUT, 0);ISP1581_SetEndpointConfig(EPINDEX4EP03IN, 0);ISP1581_SetEndp
9、ointConfig(EPINDEX4EP04OUT, 0);ISP1581_SetEndpointConfig(EPINDEX4EP04IN, 0);ISP1581_SetEndpointConfig(EPINDEX4EP05OUT, 0);ISP1581_SetEndpointConfig(EPINDEX4EP05IN, 0);ISP1581_SetEndpointConfig(EPINDEX4EP06OUT, 0);ISP1581_SetEndpointConfig(EPINDEX4EP06IN, 0);ISP1581_SetEndpointConfig(EPINDEX4EP07OUT,
10、 0);ISP1581_SetEndpointConfig(EPINDEX4EP07IN, 0);switch(bZBoardFlags.bits.ConnectSpeed)case FullSpeed:ISP1581_SetEPMAXSize(EPINDEX4EP01OUT, EP1_PACKET_SIZE);ISP1581_SetEPMAXSize(EPINDEX4EP01IN, EP1_PACKET_SIZE);globe_variable.maxepsize_bulk = maxepsize_FS;ISP1581_SetEPMAXSize(EPINDEX4EP02OUT, globe_
11、variable.maxepsize_bulk);ISP1581_SetEPMAXSize(EPINDEX4EP02IN, globe_variable.maxepsize_bulk);/ISP1581_SetEPMAXSize(EPINDEX4EP03OUT, maxepsize_256);/ISP1581_SetEPMAXSize(EPINDEX4EP03IN, maxepsize_256);ISP1581_SetEPMAXSize(EPINDEX4EP04OUT, maxepsize_16);ISP1581_SetEPMAXSize(EPINDEX4EP04IN, maxepsize_1
12、6);break;case HighSpeed:ISP1581_SetEPMAXSize(EPINDEX4EP01OUT, maxepsize_512);ISP1581_SetEPMAXSize(EPINDEX4EP01IN, maxepsize_512);globe_variable.maxepsize_bulk = maxepsize_HS;ISP1581_SetEPMAXSize(EPINDEX4EP02OUT, globe_variable.maxepsize_bulk);ISP1581_SetEPMAXSize(EPINDEX4EP02IN, globe_variable.maxep
13、size_bulk);/ISP1581_SetEPMAXSize(EPINDEX4EP03OUT, maxepsize_256);/ISP1581_SetEPMAXSize(EPINDEX4EP03IN, maxepsize_256);ISP1581_SetEPMAXSize(EPINDEX4EP04OUT, maxepsize_512);ISP1581_SetEPMAXSize(EPINDEX4EP04IN, maxepsize_16);break;default:globe_variable.maxepsize_bulk = maxepsize_FS;break;ISP1581_SetEP
14、MAXSize(EPINDEX4EP03OUT, maxepsize_0);ISP1581_SetEPMAXSize(EPINDEX4EP03IN, maxepsize_0);ISP1581_SetEPMAXSize(EPINDEX4EP05OUT, maxepsize_0);ISP1581_SetEPMAXSize(EPINDEX4EP05IN, maxepsize_0);ISP1581_SetEPMAXSize(EPINDEX4EP06OUT, maxepsize_0);ISP1581_SetEPMAXSize(EPINDEX4EP06IN, maxepsize_0);ISP1581_Se
15、tEPMAXSize(EPINDEX4EP07OUT, maxepsize_0);ISP1581_SetEPMAXSize(EPINDEX4EP07IN, maxepsize_0);ISP1581_SetEndpointConfig(EPINDEX4EP01OUT, eptype_bulk|eptype_enable);ISP1581_SetEndpointConfig(EPINDEX4EP01IN, eptype_bulk|eptype_enable);/|eptype_doublebuf);/|eptype_noempkt);ISP1581_SetEndpointConfig(EPINDE
16、X4EP02OUT, eptype_bulk|eptype_enable|eptype_doublebuf);ISP1581_SetEndpointConfig(EPINDEX4EP02IN, eptype_bulk|eptype_enable|eptype_doublebuf|eptype_noempkt);ISP1581_SetEndpointConfig(EPINDEX4EP03OUT, 0);ISP1581_SetEndpointConfig(EPINDEX4EP03IN, 0);ISP1581_SetEndpointConfig(EPINDEX4EP04OUT, eptype_bulk|eptype_enable);ISP1581_SetEndpointConfig(EPINDEX4EP04IN, eptype