📄 i2c196.h
字号:
/*********************** SGS-THOMSON MICROELECTRONICS ************************
FILENAME : I2C_BUS.H
VERSION : V1.0
DATE : JAN 1999
AUTHOR(s) : ASHISH RUDOLA/ DEEPAK DOSHI
PROCESSOR : ST92196
DESCRIPTION : This module contains constant definitions and function
prototypes.
MODIFICATIONS:
-
*****************************************************************************/
#ifndef _I2C_BUS_196
#define _I2C_BUS_196
/* define the i2c-bus register and constant */
#define I2C_PG ((unsigned char)44) /* I2C registers page */
register volatile unsigned char I2COAR asm("R240"); /* Own address register */
#define I2C_ADD0 ((unsigned char)0x01) /* Adr0 bit mask */
register volatile unsigned char I2CFQR asm("R241"); /* Frequency register */
#define I2C_PP_DRV ((unsigned char)0x10)
#define I2C_FMEN ((unsigned char)0x20)
#define I2C_CHANNEL_MASK ((unsigned char)0xC0)
#define I2C_CHANNEL_1 ((unsigned char)0x00)
#define I2C_CHANNEL_2 ((unsigned char)0x80)
#define I2C_CHANNEL_3 ((unsigned char)0x40)
#define I2C_CHANNEL_4 ((unsigned char)0xC0)
#define I2C_FREQ_MASK ((unsigned char)0x0F)
#define I2C_020KHZ ((unsigned char)0x00)
#define I2C_030KHZ ((unsigned char)0x01)
#define I2C_040KHZ ((unsigned char)0x02)
#define I2C_050KHZ ((unsigned char)0x03)
#define I2C_062KHZ ((unsigned char)0x04)
#define I2C_071KHZ ((unsigned char)0x05)
#define I2C_083KHZ ((unsigned char)0x06)
#define I2C_100KHZ ((unsigned char)0x07)
#define I2C_125KHZ ((unsigned char)0x08)
#define I2C_166KHZ ((unsigned char)0x09)
#define I2C_200KHZ ((unsigned char)0x0A)
#define I2C_250KHZ ((unsigned char)0x0B)
#define I2C_363KHZ ((unsigned char)0x0C)
#define I2C_400KHZ ((unsigned char)0x0D)
#define I2C_500KHZ ((unsigned char)0x0E)
#define I2C_800KHZ ((unsigned char)0x0F)
register volatile unsigned char I2CCTR asm("R242"); /* I2C control register */
#define I2C_AFEN ((unsigned char)0x80) /* Advanced Features Enable bit mask */
#define I2C_RTI ((unsigned char)0x40) /* Return to inactive state bit mask */
#define I2C_GENC_ACK ((unsigned char)0x20) /* General Call ack bit mask */
#define I2C_SEND_ACK ((unsigned char)0x10) /* Ack bit mask */
#define I2C_MONITOR ((unsigned char)0x08) /* Bus monitor bit mask */
#define I2C_RSRT ((unsigned char)0x04) /* Repeated start bit mask */
#define I2C_STOP ((unsigned char)0x02) /* Stop condition bit mask */
#define I2C_CLEAR ((unsigned char)0x01) /* Reset generation bit mask */
register volatile unsigned char I2CSTR1 asm("R245"); /* I2C status register 1 */
#define I2C_ERROR ((unsigned char)0x80) /* IRQ on error bit mask */
#define I2C_ARB_LOST ((unsigned char)0x40) /* Arbitration lost bit mask */
#define I2C_READ ((unsigned char)0x20) /* Read/Write status bit mask */
#define I2C_FIRST ((unsigned char)0x10) /* status bit mask */
#define I2C_GEN_CALL ((unsigned char)0x08) /* bit mask */
#define I2C_ACK_BIT ((unsigned char)0x04) /* Ack bit level bit mask */
#define I2C_ACT_SLV ((unsigned char)0x02) /* Slave Ack bit mask */
#define I2C_ACTIVE ((unsigned char)0x01) /* I2C avtive bit mask */
register volatile unsigned char I2CSTR2 asm("R244"); /* I2C status register 2 */
#define I2C_ISCEN ((unsigned char)0x80) /* Interrupt on stop condition bit mask */
#define I2C_SFEN ((unsigned char)0x40) /* Spike filter enable bit mask */
#define I2C_SCLIN ((unsigned char)0x20) /* SCL bus logic state bit mask */
#define I2C_SDAIN ((unsigned char)0x10) /* SDA bus logic state bit mask */
#define I2C_INT ((unsigned char)0x08) /* Interrupt bit mask */
#define I2C_UNPROC ((unsigned char)0x04) /* Unprocessed bit mask */
#define I2C_UNEXP ((unsigned char)0x02) /* Unexpected Ack bit mask */
#define I2C_MISP ((unsigned char)0x01) /* Misplaced bit mask */
register volatile unsigned char I2CDR asm("R243"); /* I2C data register */
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -