uCOS下应用程序例子.pdf
文本预览下载声明
凌阳大学计划论坛-[原创]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
显示全部