文档详情

uCOS下应用程序例子.pdf

发布:2017-05-28约3.92千字共5页下载文档
文本预览下载声明
凌阳大学计划论坛-[原创]uC/OS下应用程序例子 以文本方式查看主题 - 凌阳大学计划论坛 (/dvbbs/index.asp) [原创]uC/OS下应用程序例子 -- 作者:prostar -- 发布时间:2004-8-27 12:23:00 -- [原创]uC/OS下应用程序例子 下面我们公司的ARM在uC/OS下的播放DEMO程序。 // PCM Player with Real time AMR Codec decode // // Useing uCOS-II to build this applications // // Author : XXC // // Target chip : Sieko Epson S1C333209 // // Version : 1.0.0 //////////////////////////////////////////////// //////////////////////////////////////////////// // // // Shannxi MicroVantech Corp. // // (c) 2004 Copyright by XXC // // All Rights Reserved // // /////////////////////////////////////////////// #include includes.h // For OS #include amrglobal.h // For AMR Codec #include dec_com.h // For AMR decode #define TASK_STK_SIZE 512 凌阳大学计划论坛-[原创]uC/OS下应用程序例子 #define SERIAL_FRAMESIZE (1+MAX_SERIAL_SIZE+5) // with first time and start playing. // when the DAC finished played the dates. extern const char en475_buf[]; OS_STK TimerStk[TASK_STK_SIZE]; OS_STK PlayStk[TASK_STK_SIZE]; OS_STK WorkStk1[TASK_STK_SIZE]; void main() { OSInit(); OSTaskCreate(TimerTask,(void*)0,TimerStk[TASK_STK_SIZE - 1],5); OSTaskCreate(PlayTask,(void*)0,PlayStk[TASK_STK_SIZE - 1],7); OSTaskCreate(WorkTask1,(void*)0,WorkStk1[TASK_STK_SIZE - 1],9); OSStart(); } void TimerTask( void *pdata ) { pdata = pdata; OS_ENTER_CRITICAL(); *((INT8U*)0x48205) = 0; *((INT32U*)0x48200) = IDMA_START_ADDRESS; *((INT8U*)0x48205) = 1; DACD_Initialize(); DACD_SetSamplingMode(8000, 1, 16); DACD_SetHeadphoneVolume(60, 60); OS_EXIT_CRITICAL(); stop_16timer( T16P_PRUN1_ADDR ); init_16timer1(); 凌阳大学计划论坛-[原创]uC/OS下应用程序例子 run_16timer( T16P_PRUN1_ADDR ); OSTaskSuspend(9); OSTaskSuspend(5); //Switch to play task } void PlayTask( void* pdata ) { INT32U i; INT8U j; INT16U index; INT8U* pBuf; INT16U* serial
显示全部
相似文档