📄 i2c.h
字号:
#ifndef _I2C_H_
#define _I2C_H_
#ifdef _I2C_C_
#define _I2CDEC_
#else
#define _I2CDEC_ extern
#endif
#include "com.h"
#include "cpu8052.h"
#include "main.h"
#define EEPROM 0xAC //;24C04 000-255字节
#define EEPROM_TV 0xAE //;24C04 256-511字节
#define PCF8563 0xA2 //;写地址(时钟)
#define M52795 0x90 //;AV开关芯片地址
#define PT2313 0x88 //;音频处理IC地址
#define XC2028 0xC2 //;电视调谐器地址
#define MST726A 0x6E //;MST726A ADDR
#define TSC2003 0x90
#define _Nop() _nop_()
// ;EEPROM前256字节定义
// ;==============================
#define EEPROM_NEW_OLD_ID 2 //;存储器新旧标志
#define BRI_STORE 4 //;存储亮度
#define CON_STORE 5 //;存储
#define COL_STORE 6 //;存储亮度
#define VIDEO_BRI_MODE_STORE 8 //;视频模式存储位置
#define VOLUME_STORE 9 //;音量
#define BASS_STORE 10 //;低音
#define TREBLE_STORE 11 //;高音
#define BALBANCE_STORE 12 //;左右平衡
#define FADER_STORE 13 //;前后平衡
#define EQ_STORE 14 //;EQ值
#define LANG_STORE 16 //;语言存储位置
#define VCOM_DC 17 //;VCOM DC(A0)
#define VCOM_AC 18 //;VCOM AC(80)
#define IN_STATION_STORE 20
//#define LCD_MIN_POSTION 22 //;显示器最小角度
//#define LCD_MAX_POSTION 23 //;显示器最大角度
#define LCD_OFF_POSTION 24 //;显示器OFF角度值存储位置
#define LCD_EJECT_POSTION 25 //;显示器DVD EJECT角度值存储位置
// FM1 0x1E---0x2E 共8个频道
#define FM1_STORE_0CH_H 30 //1EH
#define FM1_STORE_0CH_L 31
// FM2 ;FM1 0x2E---0x3E 共8个频道
#define FM2_STORE_0CH_H 46 //2EH
#define FM2_STORE_0CH_L 47
// AM1 ;FM1 0x70---0x89 共8个频道
#define AM_STORE_0CH_H 62 //16H
#define AM_STORE_0CH_L 63
#define Steer_EErom_ID 80 //方向盘设置标志
#define Steer_AD_value 81 //方向盘AD设置值
#define AM_STEP_SIZE_STORE 90 //N参考频率1K,AM步进=09K(有些国家步进10K)
#define AM_MIN_DATA_L_STORE 91
#define AM_MAX_DATA_L_STORE 92
#define TV_MAX_CHANNEL_STORE 93 //;电视自动存储节目数量
#define END_TV_CHENNEL 94 //;关机时所在频道
#define END_TV_TUNE_DATA_H 95 //;电视关机存储调谐数据高字节
#define END_TV_TUNE_DATA_L 96 //;电视关机存储调谐数据低字节
#define TV_SOUND_SYSTEM_STORE 97 //;电视声音制式存储
#define TV_COLOR_SYSTEM_STORE 98 //;电视彩色制式存储
//;上次关机时的电台频道
#define BAND_STATION_STORE 100 //;波段状态(0=FM1,1=FM2,2=AM)
#define CLOSE_FM1_CHENNEL 101 //;关机时FM所在频道
#define END_STORE_FM1_CHANNEL_H 102
#define END_STORE_FM1_CHANNEL_L 103
#define CLOSE_FM2_CHENNEL 104 //;关机时FM所在频道
#define END_STORE_FM2_CHANNEL_H 105
#define END_STORE_FM2_CHANNEL_L 106
#define CLOSE_AM_CHENNEL 107 //;关机时FM所在频道
#define END_STORE_AM_CHANNEL_H 108
#define END_STORE_AM_CHANNEL_L 109
#define BUZZER_ID_ADD 110 //按键声开关
#define GPS_MODE_STORE 111 //GPS播放模式
#define AM_TYPE 112 //=0 9K =1 10K
#define CCFL_BRIGHT_ADD 113
#define BRAKE_ID_ADDR 114
#define CLOCK_ID_ADDR 115
#define GPS_CVBS_ADDR 116
#define LCD_COLOR_ADDR 117
#define LAMP_COLOR_ADDR 118
#define NIGHT_MODE_ADDR 119
#define SD_SETUP_ADDR 120
#define K_XOS 124 //触摸屏校正
#define XOFFSET 125
#define K_POS 126
#define YFFSET 127
//;只初始化到127
//;EEPROM后256字节定义
//;001-200电视节目存储(存储节目数共100个频道,200个字节)
#define TV_STORE_SATRT_ADDR_H 1
#define TV_STORE_SATRT_ADDR_L 2
_I2CDEC_ Byte Buff[24]; // IIC发送缓存
typedef enum i2c_Type
{ Normal_I2c,
Tsc2003_I2c
} I2C_Type;
typedef enum i2c_direction
{ I2C_WRITE,
I2C_READ
} I2C_Direction;
#define I2C_ACKNOWLEDGE _LOW
#define I2C_NON_ACKNOWLEDGE _HIGH
#define I2C_CHECK_PIN_DUMMY 1000 //us
#define I2C_DEVICE_ADR_WRITE(slave_adr) (slave_adr & ~_BIT0)
#define I2C_DEVICE_ADR_READ(slave_adr) (slave_adr | _BIT0)
#define I2C_ACCESS_DUMMY_TIME 10 //tjiger
#define i2cSetSCL(is_hl) P_SCL=is_hl
#define i2cSetSDA(is_hl) P_SDA=is_hl
#define i2cSCL_PIN_STATUS() P_SCL
#define i2cSDA_PIN_STATUS() P_SDA
#define i2cSetSCL_Tsc2003(is_hl) P_SCL=is_hl
#define i2cSetSDA_Tsc2003(is_hl) P_Touch_SDA=is_hl
#define i2cSCL_PIN_Status_Tsc2003() P_SCL
#define i2cSDA_PIN_STATUS_Tsc2003() P_Touch_SDA
_I2CDEC_ void Eeprom_Init(void);
_I2CDEC_ void Send_EEprom_Data(Byte ucSlaveAdr,Byte ucSubAdr, Byte *pBuf, Byte ucBufLen);
_I2CDEC_ bit i2c_Start();
_I2CDEC_ bit i2c_SendByte(Byte ucVal);
_I2CDEC_ void i2c_Stop();
_I2CDEC_ Byte i2c_ReceiveByte(bit bAck);
_I2CDEC_ void i2cBurstCurrent_Write(Byte ucSlaveAdr, Byte *pBuf, Byte ucBufLen);
_I2CDEC_ void i2cBurstCurrent_Read(Byte ucSlaveAdr, Byte *pBuf, Byte ucBufLen);
_I2CDEC_ void i2c_WriteTBL(Byte deviceID, Word addr, Byte *buffer, Byte count);
_I2CDEC_ void i2cWriteByte(Byte deviceID, Byte addr, Byte value);
_I2CDEC_ void i2cBurstReadBytes(Byte ucSlaveAdr, Byte ucSubAdr, Byte *pBuf, Byte ucBufLen);
_I2CDEC_ void i2cBurstWriteBytes(Byte ucSlaveAdr, Byte ucSubAdr, Byte *pBuf, Byte ucBufLen);
_I2CDEC_ bit i2c_AccessStart(Byte ucSlaveAdr, I2C_Direction trans_t);
_I2CDEC_ void i2cSetSCL_Chk_Tsc2003(bit bSet);
_I2CDEC_ void i2cSetSDA_Chk_Tsc2003(bit bSet);
_I2CDEC_ void i2c_Delay_Tsc2003(void);
_I2CDEC_ bit i2c_Start_Tsc2003();
_I2CDEC_ void i2c_Stop_Tsc2003();
_I2CDEC_ bit i2c_SendByte_Tsc2003(uchar ucVal);
_I2CDEC_ uchar ii2c_ReceiveByte_Tsc2003(bit bAck);
_I2CDEC_ bit i2c_AccessStart_Tsc2003(uchar ucSlaveAdr, I2C_Direction trans_t);
_I2CDEC_ void i2cBurstCurrent_Write_Tsc2003(uchar ucSlaveAdr, uchar *pBuf, uchar ucBufLen);
_I2CDEC_ void i2cBurstCurrent_Read_Tsc2003(uchar ucSlaveAdr, uchar *pBuf, uchar ucBufLen);
_I2CDEC_ void i2cBurstCurrent_Write_Tsc2003(uchar ucSlaveAdr, uchar *pBuf, uchar ucBufLen);
_I2CDEC_ void i2cBurstCurrent_Read_Tsc2003(uchar ucSlaveAdr, uchar *pBuf, uchar ucBufLen);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -