Lab 1 Program C

Dependents:   Lab1C

Fork of mbed by -deleted-

I2C.h

Committer:
simon.ford@mbed.co.uk
Date:
2008-04-30
Revision:
1:6b7f447ca868
Parent:
0:82220227f4fa
Child:
4:5d1359a283bc

File content as of revision 1:6b7f447ca868:

/* mbed Microcontroller Library - I2C
 * Copyright (c) 2007-2008, sford
 */
 
#ifndef MBED_I2C_H
#define MBED_I2C_H

#include "Base.h"

namespace mbed {

/* Class: I2C
 *  An I2C Master, used for communicating with I2C slave devices
 */
class I2C : public Base {

public:

	/* Group: Configuration Methods */

	/* Constructor: I2C
	 *  Create an I2C Master interface, connected to the specified pins
	 *
	 * Variables:
	 *  sda - I2C data line pin
	 *  scl - I2C clock line pin
     *
	 * Pin Options:
	 *  (9, 10) or (28, 27)	 
	 */
	I2C(int sda, int scl);
	
	/* Function: frequency
	 *  Set the frequency of the I2C interface
	 *
	 * Variables:
	 *  hz - The bus frequency in hertz
	 */
	void frequency(int hz);
	
	/* Group: Access Methods */
		
	/* Function: read
	 *  Read from an I2C slave
	 *
	 * Variables:
	 *  address - 7-bit I2C slave address (0-127)
	 *  data - Pointer to the byte-array to read data in to 
	 *  length - Number of bytes to read
	 */ 
	void read(int address, char* data, int length); 

	/* Function: write
	 *  Write to an I2C slave
	 *
	 * Variables:
	 *  address - 7-bit I2C slave address (0-127)
	 *  data - Pointer to the byte-array data to send 
	 *  length - Number of bytes to send
	 */ 
	void write(int address, char* data, int length);

protected:

	void configure();
	
	int _id;

	int _uid;
	static int _uidcounter;
		
	int _hz;
	static int _config[3];	
		
};

}

#endif