sanyoccb.c

来自「三洋汽车多碟碟盒的通讯协议」· C语言 代码 · 共 115 行

C
115
字号
/************************************************************************/
/*	Copyright(c)  2003, ShenZhen                                                                                         */
/*	Created By DuirkWang, 06.11.2003 										*/
/* 	File: 	Sanyoccb.c													        */
/*	Ver:	1.0.1															*/
/*	Project: CCB software													*/
/*	Description: process sanyo ccb bus  routines.									*/
/************************************************************************/
#include "Config.h"
#include "Reg52.h"
#ifdef KST_TUNER
#include "Global.h"
#include "IOPort.h"
#include "SanyoCCB.h"
#include "Tools.h"


void Send_ccb_data(Uint32 ccbdata, Uint8 bits)
{
   Uint8 idata i;

   for( i = 0; i < bits; i++)
   {
	CLEAR_CCB_CLK;
	delay_us(5);
        if (ccbdata & 0x01) {
            SET_CCB_DATA;
        } else {
            CLEAR_CCB_DATA;
        }
	delay_us(5);
    SET_CCB_CLK;
    ccbdata >>= 1;
    delay_us(5);
   }
	SET_CCB_DATA;
}

Uint32 Read_ccb_data(Uint8 bits)
{
   Uint8 idata i;
   Uint32 idata value;

   value = 0;
   for(i = 0; i < bits; i++)
    {
    SET_DATA_HIGH;
        value <<= 1;
    	CLEAR_CCB_CLK;
	delay_us(5);
	SET_CCB_CLK;
	delay_us(5);

          if(CCB_DATA_HIGH)
          	value |= 0x01;
    }
	SET_DATA_HIGH;

	return value;
}

Uint32 Read_data_from_ccb(Uint32 address, Uint8 bits)
{
	Uint32 idata CcbOutData;

       	CLEAR_CCB_STROBE;
     	Send_ccb_data(address, 8);
     	SET_CCB_STROBE;
     	CcbOutData = Read_ccb_data(bits);
     	CLEAR_CCB_STROBE;

     	return CcbOutData;
}


void  Send_data_to_ccb(Uint32 address, Uint32 ccbdata, Uint8 bits)
{
	CLEAR_CCB_STROBE;
     	Send_ccb_data(address, 8);
     	SET_CCB_STROBE;
	Send_ccb_data(ccbdata, bits);
     	CLEAR_CCB_STROBE;

}

#endif




























⌨️ 快捷键说明

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