/*
Reads data from an I2C accelerometer.
Slave Device Address: 0011101
*/
#include <p18F4685.h>
#include <delays.h>
#include <usart.h>
#include <i2c.h>
#include <stdio.h>
#pragma config OSC = HSPLL /*Sets the config bits*/
#pragma config WDT = OFF
#pragma config DEBUG = OFF
#pragma config MCLRE = ON
#pragma config PBADEN = OFF
void main(void)
{
unsigned int lsb;
unsigned int msb;
TRISC = 0x0;
LATC = 0x0;
OpenUSART(USART_TX_INT_OFF & USART_RX_INT_OFF /*Turns the Tx and Rx interupts off*/
& USART_ASYNCH_MODE & USART_EIGHT_BIT /*Sets up for a-sync and 8-bit data mode*/
& USART_BRGH_HIGH, 104); /*Baud mode "High"*/
OpenI2C(MASTER, SLEW_OFF);
SSPADD = 9;
Delay10KTCYx(225);
Start:
StartI2C();
IdleI2C();
WriteI2C(0b00111010);
IdleI2C();
WriteI2C(0b0101000);
IdleI2C();
RestartI2C();
IdleI2C();
WriteI2C(0b00111001);
IdleI2C();
lsb = ReadI2C();
NotAckI2C();
IdleI2C();
StopI2C();
printf(" Data:\r\n");
printf("%d\r\n", lsb);
printf(" \r\n");
Delay10KTCYx(225);
goto Start;
}