Header Files I2C.H
Header Files I2C.H
I2C.H
#ifndef __I2C_H
#define __I2C_H
//Function Declarations
void InitI2C(void);
void I2C_Start(void);
void I2C_ReStart(void);
void I2C_Stop(void);
void I2C_Send_ACK(void);
void I2C_Send_NACK(void);
bit I2C_Write_Byte(unsigned char);
unsigned char I2C_Read_Byte(void);
#endif
INCLUDE.H
#ifndef __INCLUDES_H
#define __INCLUDES_H
// Define CPU Frequency
// This must be defined, if __delay_ms() or
// __delay_us() functions are used in the code
#define _XTAL_FREQ 20000000
#include <htc.h>
#include "I2C.h"
#endif
MAIN.C
#include"Includes.h"
// Main function
void main(void)
{
unsigned char RxByte = 0;
while(1)
{
}
}
I2C.C
#include "Includes.h"
// Function Purpose: Configure I2C module
void InitI2C(void)
{
SDA_DIR = 1; // Make SDA and
SCK_DIR = 1; // SCK pins input
SSPADD = ((_XTAL_FREQ/4000)/I2C_SPEED) - 1;
SSPSTAT = 0x80; // Slew Rate control is disabled
SSPCON = 0x28; // Select and enable I2C in master mode
}