亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tonetimer.c

?? DTMF收發芯片88L89完美驅動(Arm,SDT251環境)
?? C
字號:
/* tone_Timer.c - 音頻服務 應用層 定時器消息函數 */

/* Copyright 1994-2001 Wuhan Jinglun Electronic Co., Ltd. */

/* 
modification history
--------------------

*/

/* 
DESCRIPTION 根據定時器消息提供相應的服務。
*/

#include	"nucleus.h"
#include	"routon.h"
#include	"debug.h"

#include	<stdio.h>
#include	<string.h>

#include	"pcdisk.h"



#include	"codec.h"

#include	"intfTone.h"
#include	"..\inc\rtn_tone.h"

//1個隊列
//extern NU_TIMER TONE_Timer_HFC_Start;
//extern NU_TIMER TONE_Timer_HFC_Stop;
extern NU_TIMER TONE_Timer_ARM_Start;
extern NU_TIMER TONE_Timer_ARM_Stop;

//extern NU_TIMER TONE_Timer_KEYS_Down;
//extern NU_TIMER TONE_Timer_DTMF_Down;

//2個設備
//extern TONE_APP_DEVICE_INFO_t gTONE_App_Device_Info_HFC;	
extern TONE_APP_DEVICE_INFO_t gTONE_App_Device_Info_ARM;

///////////////////////////////////////////////////////////////////////
//中斷服務程序
///////////////////////////////////////////////////////////////////////

#if 0
/**********************************************************************
*                                                                      
*  FUNCTION		"tone_HISR_Timer_HFC_Start"          定時器.中斷服務程序       
*
***********************************************************************/
void tone_HISR_Timer_HFC_Start(UNSIGNED id)
{
	RtnMSG	s_msg;

	STATUS	status;
	//PRINTFLOW("TIMER: Begin: tone_HISR_Timer_HFC_Start");

	s_msg.msg_len = 3;
	s_msg.msg_code = MSG_TONE_TIMER_HFC_START;	
	status = NU_Send_To_Pipe(&rtn_pipe[TONE], &s_msg, s_msg.msg_len + 4, NU_NO_SUSPEND);  
	if (status < NU_SUCCESS) 
	{
		PRINTERRR("ERRR: NU_Send_To_Pipe: %d. ", status);  
		LogError("Error %s L %d\n",__FILE__,__LINE__);
	}

	//PRINTFLOW("TIMER: Enddd: tone_HISR_Timer_HFC_Start");
	return;
}

/**********************************************************************
*                                                                      
*  FUNCTION		"tone_HISR_Timer_HFC_Stop"          定時器.中斷服務程序       
*
***********************************************************************/
void tone_HISR_Timer_HFC_Stop(UNSIGNED id)
{
	RtnMSG	s_msg;

	STATUS	status;
	//PRINTFLOW("TIMER: Begin: tone_HISR_Timer_HFC_Stop");

	s_msg.msg_len = 3;
	s_msg.msg_code = MSG_TONE_TIMER_HFC_STOP;	
	status = NU_Send_To_Pipe(&rtn_pipe[TONE], &s_msg, s_msg.msg_len + 4, NU_NO_SUSPEND);  
	if (status < NU_SUCCESS) 
	{
		PRINTERRR("ERRR: NU_Send_To_Pipe: %d. ", status);  
		LogError("Error %s L %d\n",__FILE__,__LINE__);
	}

	//PRINTFLOW("TIMER: Enddd: tone_HISR_Timer_HFC_Stop");
	return;
}

#endif

/**********************************************************************
*                                                                      
*  FUNCTION		"tone_HISR_Timer_ARM_Start"          定時器.中斷服務程序       
*
***********************************************************************/
void tone_HISR_Timer_ARM_Start(UNSIGNED id)
{
	RtnMSG	s_msg;

	STATUS	status;
	//PRINTFLOW("TIMER: Begin: tone_HISR_Timer_ARM_Start");

	s_msg.msg_len = 3;
	s_msg.msg_code = MSG_TONE_TIMER_ARM_START;	
	status = NU_Send_To_Pipe(&rtn_pipe[TONE], &s_msg, s_msg.msg_len + 4, NU_NO_SUSPEND);  
	if (status < NU_SUCCESS) 
	{
		PRINTERRR("ERRR: NU_Send_To_Pipe: %d. ", status);  
		LogError("Error %s L %d\n",__FILE__,__LINE__);
	}

	//PRINTFLOW("TIMER: Enddd: tone_HISR_Timer_ARM_Start");
	return;
}

/**********************************************************************
*                                                                      
*  FUNCTION		"tone_HISR_Timer_ARM_Stop"          定時器.中斷服務程序       
*
***********************************************************************/
void tone_HISR_Timer_ARM_Stop(UNSIGNED id)
{
	RtnMSG	s_msg;

	STATUS	status;
	//PRINTFLOW("TIMER: Begin: tone_HISR_Timer_ARM_Stop");

	s_msg.msg_len = 3;
	s_msg.msg_code = MSG_TONE_TIMER_ARM_STOP;	
	status = NU_Send_To_Pipe(&rtn_pipe[TONE], &s_msg, s_msg.msg_len + 4, NU_NO_SUSPEND);  
	if (status < NU_SUCCESS) 
	{
		PRINTERRR("ERRR: NU_Send_To_Pipe: %d. ", status);  
		LogError("Error %s L %d\n",__FILE__,__LINE__);
	}

	//PRINTFLOW("TIMER: Enddd: tone_HISR_Timer_ARM_Stop");
	return;
}

///////////////////////////////////////////////////////////////////////
//函數
///////////////////////////////////////////////////////////////////////

#if 0
/**********************************************************************
*                                                                      
*  FUNCTION		"tone_Proc_Timer_HFC_Expire_Start"          定時器.中斷服務程序       
*
***********************************************************************/
int tone_Proc_Timer_HFC_Expire_Start(TONE_APP_DEVICE_INFO_t * App_Device)
{
//    RtnMSG    msg;   

	STATUS	status;
	//PRINTFLOW("TIMER: Begin: tone_Proc_Timer_HFC_Expire_Start");

	//PRINTINFO("tone_App_Data_Buf_Sub_Init: %8d\t iLoop_Period", App_Device->iLoop_Period);
	
	//
	//播放次數倒計時
	//
	App_Device->iLoop_Period--;
	
	//
	//如果播放循環結束,則定時器的使命完成
	//	
	if (App_Device->iLoop_Period==0)	//循環結束
	{	
		status = NU_Control_Timer(&TONE_Timer_HFC_Start, NU_DISABLE_TIMER);	
		status = NU_Control_Timer(&TONE_Timer_HFC_Stop,  NU_DISABLE_TIMER);	

		//???	為什么與ARM的處理不一致,注釋掉后會不會有副作用
		//status = HFC_Codec_Close(App_Device->idChannel);

		return NU_SUCCESS;		
	}
	
	//
	//打開設備
	//	
	status = HFC_Codec_Open(App_Device->idChannel, 
							App_Device->idMode,		//
							App_Device->idOrient);//			
							
	//
	//寫出數據
	//	
	status = HFC_Codec_Write(App_Device->idChannel,
					 (char *)App_Device->pBuf, 
							 App_Device->iBuf, 
							 App_Device->iLoop_Series);

	//PRINTFLOW("TIMER: Enddd: tone_Proc_Timer_HFC_Expire_Start");

	return NU_SUCCESS;
}

/**********************************************************************
*                                                                      
*  FUNCTION		"tone_Proc_Timer_HFC_Expire_Stop"          定時器.中斷服務程序       
*
***********************************************************************/
int tone_Proc_Timer_HFC_Expire_Stop(TONE_APP_DEVICE_INFO_t * App_Device)
{
	STATUS	status;
	//PRINTFLOW("TIMER: Begin: tone_Proc_Timer_HFC_Expire_Stop");
	
	//
	//關閉設備
	//	
 	status = HFC_Codec_Close(App_Device->idChannel);

	//PRINTFLOW("TIMER: Enddd: tone_Proc_Timer_HFC_Expire_Stop");
	return NU_SUCCESS;
}

#endif

/**********************************************************************
*                                                                      
*  FUNCTION		"tone_Proc_Timer_ARM_Expire_Start"              
*
***********************************************************************/
int tone_Proc_Timer_ARM_Expire_Start(TONE_APP_DEVICE_INFO_t * App_Device)
{
	STATUS	status;

	//
	//播放次數倒計時
	//
	App_Device->iLoop_Period--;		//周期循環次數	

	//
	//如果播放循環結束,則定時器的使命完成
	//
	if (App_Device->iLoop_Period==0)	
	{
		status = NU_Control_Timer(&TONE_Timer_ARM_Start, NU_DISABLE_TIMER);
		status = NU_Control_Timer(&TONE_Timer_ARM_Stop,  NU_DISABLE_TIMER);

		//status = Codec_Close (CodecWrite, App_Device->idOrient, App_Device->idCodec);

		return 0;	
	}

	//
	//如果播放到聽筒,則要做特殊處理
	//
	/*
	if (App_Device->idOrient == TONE_ORIENT_ID_PHONE)
	{
		//
		//啟動145481應用激勵			2002-05-08, modified, 控制有低層封裝
		//
		//status = PhDr_Iocntl(0, CNTLID_GCI_B1_ENABLE, 0);
		PhDr_Open_codec_A_for_app();
	}
	*/
	//
	//打開設備
	//	
	gTONE_App_Device_Info_ARM.idCodec = Codec_Open(CodecWrite, App_Device->idOrient);	
	
	//
	//寫出數據
	//	
	status = Codec_Write( (char *)App_Device->pBuf, 
					 		 App_Device->iBuf,			//連續循環次數
					 		 App_Device->iLoop_Series,
							 App_Device->idCodec );

	return NU_SUCCESS;
}

/**********************************************************************
*                                                                      
*  FUNCTION		"tone_Proc_Timer_ARM_Expire_Stop"         
*
***********************************************************************/
int tone_Proc_Timer_ARM_Expire_Stop(TONE_APP_DEVICE_INFO_t * App_Device)
{
	STATUS	status;

	//
	//關閉設備
	//	
	status = Codec_Close (CodecWrite, App_Device->idOrient, App_Device->idCodec);

	//
	//關閉145481應用激勵			2002-05-08, modified, 控制有低層封裝
	//
	//PhDr_Close_codec_A_for_app();
	
	return NU_SUCCESS;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女诱惑一区二区| 一本久久a久久免费精品不卡| 国产在线精品国自产拍免费| 91免费看视频| 久久久久久久综合狠狠综合| 亚洲综合色自拍一区| 大陆成人av片| 久久久久综合网| 日韩av中文字幕一区二区| 91麻豆国产福利在线观看| 久久久亚洲精华液精华液精华液| 水野朝阳av一区二区三区| 91免费国产视频网站| 久久久精品蜜桃| 麻豆精品久久精品色综合| 欧美日韩精品二区第二页| 亚洲人精品一区| 成人在线视频首页| 国产亚洲精品福利| 蜜桃视频在线一区| 7777精品伊人久久久大香线蕉 | 国产精品影视天天线| 4438x亚洲最大成人网| 亚洲一级二级在线| 欧美在线视频全部完| 一区二区三区毛片| 在线视频欧美区| 一区二区三区免费看视频| 色综合久久88色综合天天免费| 国产精品久久久久久久久晋中| 成人免费观看男女羞羞视频| 国产午夜精品一区二区三区嫩草| 久久国产精品色婷婷| 26uuu国产日韩综合| 国产精品一区二区x88av| 久久精品男人的天堂| 国产成人午夜精品影院观看视频 | 亚洲视频免费看| 99精品热视频| 一区二区三区欧美日韩| 欧美日本视频在线| 美女网站在线免费欧美精品| 日韩免费看的电影| 精品一区二区三区免费观看| 久久综合久久综合九色| 国产剧情一区二区| 国产精品美女久久久久久| 99国产精品久| 亚洲国产sm捆绑调教视频| 在线播放/欧美激情| 久久99精品久久久久久国产越南| 26uuu国产在线精品一区二区| 国产成人精品综合在线观看| 中文字幕在线观看一区二区| 欧美午夜精品一区| 美女在线视频一区| 中文乱码免费一区二区| 欧美伊人久久久久久午夜久久久久| 午夜天堂影视香蕉久久| 久久精品亚洲一区二区三区浴池 | 欧美日韩国产在线播放网站| 日本伊人色综合网| 中文字幕精品在线不卡| 欧美综合一区二区| 国产一区二区在线视频| 亚洲精品国产无套在线观| 日韩女优视频免费观看| av综合在线播放| 卡一卡二国产精品| 最近日韩中文字幕| 欧美成人精品3d动漫h| a级精品国产片在线观看| 天天综合网 天天综合色| 国产偷国产偷精品高清尤物| 欧美日韩精品一区二区三区蜜桃| 国产精品一区专区| 丝袜美腿亚洲一区二区图片| 亚洲国产精品av| 欧美一区二区二区| 色天天综合久久久久综合片| 国产一区二区三区在线观看免费| 亚洲精品视频在线| 国产日韩欧美综合一区| 欧美另类高清zo欧美| 色综合久久中文字幕综合网 | 免费在线观看一区二区三区| 一区二区中文视频| 国产拍揄自揄精品视频麻豆| 欧美一级片在线看| 欧美人xxxx| 精品国产伦理网| 欧美一级日韩免费不卡| 在线观看亚洲精品| 99久久99久久综合| 成人伦理片在线| 国产精品影视网| 国产原创一区二区| 美女视频黄频大全不卡视频在线播放| 一区二区三区自拍| 自拍偷自拍亚洲精品播放| 国产精品天干天干在线综合| 精品福利一区二区三区| 日韩欧美一区电影| 欧美一区二区精品| 7777精品久久久大香线蕉| 欧美午夜精品电影| 在线视频综合导航| 在线观看av一区二区| 97精品超碰一区二区三区| 成人激情午夜影院| 国产成人在线色| www.亚洲在线| 91亚洲精品久久久蜜桃| 色猫猫国产区一区二在线视频| av成人动漫在线观看| 成人免费的视频| 97久久精品人人做人人爽| 99久久免费国产| 欧洲精品在线观看| 欧美精品乱人伦久久久久久| 制服丝袜av成人在线看| 欧美日韩三级一区| 日韩一区二区中文字幕| 精品盗摄一区二区三区| 国产日韩欧美高清| 亚洲人成网站影音先锋播放| 亚洲精品福利视频网站| 午夜精品福利视频网站| 麻豆成人免费电影| 国产成人综合网| 日韩美女视频在线| 中文在线一区二区| 亚洲天堂中文字幕| 日韩国产欧美在线视频| 另类的小说在线视频另类成人小视频在线 | 91亚洲国产成人精品一区二区三 | 国产精品三级av| 一区二区三区在线观看网站| 一区二区三区精密机械公司| 日韩国产欧美一区二区三区| 韩国av一区二区| 一本大道av伊人久久综合| 欧美肥大bbwbbw高潮| 国产三区在线成人av| 亚洲免费观看高清完整版在线 | 国产日产欧美精品一区二区三区| 亚洲天堂a在线| 免费黄网站欧美| 日韩欧美久久一区| 国产精品久久久久影院色老大| 亚洲成a人v欧美综合天堂| 久久精品国产亚洲一区二区三区| 国产成人免费视频网站高清观看视频| 色综合天天性综合| 欧美大片在线观看一区| 自拍偷拍亚洲综合| 久久99国产精品免费网站| 99久久久无码国产精品| 欧美一二三区精品| 亚洲靠逼com| 国产老妇另类xxxxx| 在线精品视频一区二区三四| 久久综合色综合88| 亚洲成a人在线观看| 成人a免费在线看| 欧美v日韩v国产v| 一个色综合av| 成人高清伦理免费影院在线观看| 欧美一卡二卡在线| 亚洲成人一区在线| 色域天天综合网| 亚洲国产高清aⅴ视频| 狂野欧美性猛交blacked| 在线免费观看不卡av| 国产精品三级视频| 国产在线麻豆精品观看| 欧美一区在线视频| 亚洲一区视频在线| 一本大道综合伊人精品热热 | av在线一区二区| 中文字幕精品在线不卡| 国产在线不卡一区| 欧美成人a在线| 婷婷久久综合九色综合绿巨人| k8久久久一区二区三区| 久久九九影视网| 激情六月婷婷综合| 日韩欧美第一区| 久久精品国产成人一区二区三区| 欧美日本乱大交xxxxx| 亚洲成人精品影院| 欧美亚洲日本一区| 亚洲成人三级小说| 欧美在线免费观看视频| 一区二区三区.www| 色噜噜偷拍精品综合在线| 亚洲精品老司机| 欧美日韩一区高清| 日韩在线观看一区二区| 欧美日韩一区二区三区四区|