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

📄 debugcdc.c

📁 基本STC4052写的一个小的OS, 完成了任务调度功能,及堆栈空间切换, 及中断处理
💻 C
字号:
/********************************************************************
	Copyright (c) 2006-2007 E-compass electronic Co.,Ltd. 
	File name: debugcdc.c
	Author: Yun Chen  
	Email: walnutcy@163.com
	Version: 0.5
	Data: 
	Descriptions:
	Others:
	Functions list: 

	History: ...
*********************************************************************/
#define  _DEBUG_CDC_EXT_

#include "..\includes.h"
#include "ir_table.h"

#ifdef _DEBUG_CDC_

static U8   gCurrSong;      //current misc track number 
static U8   gCurrDisc;      //current disc number       
static U8   gLastDisc;	   //Last disc number

static BOOL    gCDCRv_9D;     // receive (MAGZ 0x9D) or not
static U8   gCDCStatus[8];

//--------------------------------------------------------
U8 CDC_SystemIrDecoder(U8 *msg);
void  DeC_Init();//debug CDC init
U8 CDC_RvChgerStatus(U8* rvData);
//---------------------------------------------------------

void DeC_Init()// debug CDC init
{
	gCurrDisc = 1;	
	gCurrSong = 1;
	gCDCRv_9D = 0;
    gLastDisc = 1;
	return;
}

/*************************************************************
**Function Name:           void DeC_RvChgerStatus(U8* rvData)
**Description:                data recieved from changer ,then stored to a struction
**Input Parameter:  
**Output Parameter:    
**Date:             06/02/13
**************************************************************/
U8 CDC_RvChgerStatus(U8* rvData)
{   
    U8 recstatus;
    U8 chkparity;   
    recstatus=rvData[0]&0x0f;
    if(recstatus !=0)
    CDchger.DevID=(rvData[0]&0x7f)>>4;

//// if there ara some status returned, indicate connect is ok
    if(recstatus>=8||recstatus<=0x0f)  
        SetConnectOk();

    switch(recstatus)
	{
      case  REV_CD_STATUS:
            chkparity= CDC_CaculParity(rvData,15);
            if(chkparity!=(rvData[7]&0x0f))
			{
                break;
			 }
            CDchger.CDCtrlMode=(rvData[1]&0xf0)>>4;
            CDchger.CurTrkNO=((rvData[1]&0x0f)<<4)|((rvData[2]&0xf0)>>4);
            CDchger.CurDiscNO=((rvData[2]&0x0f));
            CDchger.CurTrkMin=((rvData[3]&0x0f)<<4)|((rvData[4]&0xf0)>>4);
            CDchger.CurTrkSec=((rvData[4]&0x0f)<<4)|((rvData[5]&0xf0)>>4);
            CDchger.FunctStatus=((rvData[5]&0x0c)<<2)|((rvData[6]&0x80)>>4)|((rvData[6]&0x30)>>3)|((rvData[6]&0x04)>>2);
            CDchger.StatusId=(rvData[7]&0xf0)>>4;
            gCurrSong=CDchger.CurTrkNO;
            gCurrDisc=CDchger.CurDiscNO;
            break;
      case  REV_DISC_CHG_STATUS:
            break;
      case  REV_CD_TOC_STATUS:
           break;
      case  REV_MAGZ_STATUS:
            break;
      case  REV_ERROR_STATUS:
            break;
      case  REV_CONNECT_STATUS:
            break;
      default: 	  		
            break;
      }       
	return 0;

} 
      
U8 CDC_SystemIrDecoder(U8 *msg)
{    
   	switch(*msg)
   	{
       	case IR_POWER_CODE: // close
           	*msg = CDC_CLOSE_CMD;
           	break;
	   	case IR_OPEN_CODE: // open
			*msg = CDC_OPEN_CMD;
			break;
		case IR_MUTE_CODE:// connect check
			*msg = CDC_CNT_CHK_CMD;
			break;
		case IR_DISP_CODE:// status
			*msg = CDC_STATUS_CMD;
			break;
		case IR_ENTER_CODE:// play
			*msg = CDC_PLAY_CMD;
			break;
		case IR_RDM_CODE: // pause
			*msg = CDC_PAUSE_CMD;
			break;		
       	case IR_AMS_CODE: // stop
            *msg = CDC_STOP_CMD;
           	break;   
        case IR_FB_CODE:
        	*msg = CDC_BWD_CMD;
			break;
       	case IR_FF_CODE:
            *msg = CDC_FWD_CMD;
           	break;
		case IR_VOL_ADD_CODE:
			*msg = CDC_RP_SG_CMD;
			break;
		case IR_VOL_DEC_CODE:
			*msg = CDC_RP_DISC_CMD;
			break;
		case IR_ZOOM_OUT_CODE:
			*msg = CDC_INTR1_CDM;
			break;
	    case IR_ZOOM_IN_CODE:
			*msg = CDC_INTR0_CDM;
			break;
		case IR_SKIP_PREV_CODE:// random song
			*msg = CDC_RAND0_CMD;
			break;
		case IR_SKIP_NEXT_CODE: // random disc
			*msg = CDC_RAND1_CMD;
			break;
		case IR_BAND_CODE:// back up status
			*msg = CDC_BK_STATUS_CMD;
			break;
       	case IR_NUM1_CODE:
			gCurrSong = 1;			
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
           	break;
       	case IR_NUM2_CODE:
			gCurrSong = 2;			
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
           	break;
       	case IR_NUM3_CODE:
			gCurrSong = 3;			
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
            break;
       	case IR_NUM4_CODE:
			gCurrSong = 4;			
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
            break;
       	case IR_NUM5_CODE:
			gCurrSong = 5;			
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
           	break;
       	case IR_NUM6_CODE:
			gCurrSong = 6;			
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
            break;
      	case IR_NUM7_CODE:
			gCurrSong = 7;			
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
           	break;
       	case IR_NUM8_CODE:
			gCurrSong = 8;			
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
           	break;
       	case IR_NUM9_CODE:
			gCurrSong = 9;			
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
           	break;
       	case IR_NUM0_CODE:
			gCurrSong = 10;			
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
	   		break;
		case IR_UP_CODE:
			if (11 > gCurrDisc)
			{
				gCurrDisc++;
			}
			else
			{
				gCurrDisc = 1;
			}
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
			break;
		case IR_DOWN_CODE:
			break;
			if (1 < gCurrDisc)
			{
				gCurrDisc--;
			}
			else
			{
				gCurrDisc = 10;
			}
			*(msg + 0) = CDC_S_SG_DISC_CMD;
            *(msg + 1) = gCurrDisc;
			*(msg + 2) = gCurrSong;
       	default:
           	return (0);                                                                                                                      
   }  
   return (1);   
}
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
#endif

⌨️ 快捷键说明

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