Framework of classes and program to measure tilt angles using accelerometers

Dependencies:   C12832 mbed

Fork of tilt_angles by Mark Petovello

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ENGO333_I2C.h Source File

ENGO333_I2C.h

00001 /**
00002  * File : ENGO333_I2C.h
00003  * Created by : Chandra Tjhai
00004  * Created on : September 10, 2016
00005  *
00006  * Description :
00007  * This file contains a class to handle I2C bus operation for ENGO 333.
00008  */
00009 
00010 #ifndef ENGO333_I2C_H
00011 #define ENGO333_I2C_H
00012 
00013 #include "mbed.h"
00014 
00015 /**
00016  * Class
00017  *  A class to handle I2C read/write operation
00018  */
00019 class ENGO333_I2C
00020 {
00021 private:
00022     I2C i2c;    // Object for handling I2C bus operations
00023     
00024 public:
00025     /**
00026      * Constructor
00027      *
00028      * Input
00029      *  sda = SDA or I2C serial data pin
00030      *  scl = SCL or I2C serial clock pin
00031      */
00032     ENGO333_I2C(PinName sda, PinName scl);
00033     
00034     /**
00035      * Destructor
00036      */
00037     ~ENGO333_I2C();
00038     
00039     /**
00040      * Function :
00041      *  Set I2C bus frequency
00042      *
00043      * Input :
00044      *  freq = desired frequency in Hz
00045      */
00046     void setSpeed(int freq);
00047     
00048     /**
00049      * Function :
00050      *  Write one byte data into device's register
00051      *
00052      * Input :
00053      *  deviceAddress = Device's I2C address
00054      *  registerAddress = Device's register address to be written on
00055      *  value = Value to be written on device's register address
00056      */
00057     void writeOneByte(char deviceAddress, char registerAddress, char value);
00058     
00059     /**
00060      * Function :
00061      *  Read one byte from device's register address
00062      *
00063      * Input :
00064      *  deviceAddress = Device's I2C address
00065      *  registerAddress = Device's register address to be read
00066      *
00067      * Return :
00068      *  One byte data read from device's register
00069      */
00070     char readOneByte(char deviceAddress, char registerAddress);
00071     
00072     /**
00073      * Function :
00074      *  Read multiple bytes from device's register address
00075      *
00076      * Input :
00077      *  deviceAddress = Device's I2C address
00078      *  registerAddress = Device's register address to be read
00079      *  value = Array of data to store values read from device's register
00080      */
00081     void readBytes(char deviceAddress, char registerAddress, char* value, int length);
00082 };
00083 
00084 #endif