/* **********HEADER FILE******************** File saved as i2c.h Compiler/Assembler XC8 v1.38 CCI compliant? Yes Software function Provides header data for i2c.c MASTER functions Written by Mainly Microchip C18 code adapted by Russell E. Tribe Date 26/9/16 For (PIC type) Various but developed on PIC16F1459 Other information SDA on pin 13 (RB4) SCL on pin 11 (RB6) */ #ifndef _I2C_H_ #define _I2C_H_ /** I N C L U D E S **************************************************/ #include //Provides PIC header file and is required for CCI compliance /** DECLARATIONS ****************************************************/ //SSP1CON1 REGISTER #define SSPENB 0b00100000 //Enable serial port and configures SCK, SDO, SDI #define SLAVE_7 0b00000110 //I2C Slave mode, 7-bit address #define SLAVE_10 0b00000111 //I2C Slave mode, 10-bit address #define MASTER 0b00001000 //I2C Master mode #define MASTER_FIRMW 0b00001011 //I2C Firmware Controlled Master mode (slave Idle) #define SLAVE_7_STSP_INT 0b00001110 //I2C Slave mode, 7-bit address with Start and Stop bit interrupts enabled #define SLAVE_10_STSP_INT 0b00001111 //I2C Slave mode, 10-bit address with Start and Stop bit interrupts enabled //SSP1STAT REGISTER #define SLEW_OFF 0b10000000 //Slew rate disabled for 100kHz mode #define SLEW_ON 0b00000000 //Slew rate enabled for 400kHz mode #define I2C_SCL TRISBbits.TRISB6 //Pin 11 on PIC16F1459 #define I2C_SDA TRISBbits.TRISB4 //Pin 13 on PIC16F1459 NB also AN10!! /** FUNCTION PROTOTYPES ********************************************/ void OpenI2C (unsigned char, unsigned char); void CloseI2C (void); void StartI2C (void); void RestartI2C (void); void StopI2C (void); void masterSendI2C (unsigned char); void IdleI2C (void); //******************************************** #endif _I2C_H_