Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed by
I2C.h@0:82220227f4fa, 2008-04-08 (annotated)
- Committer:
- simon.ford@mbed.co.uk
- Date:
- Tue Apr 08 14:12:21 2008 +0000
- Revision:
- 0:82220227f4fa
- Child:
- 1:6b7f447ca868
A first develoment release of the mbed libraries
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simon.ford@mbed.co.uk | 0:82220227f4fa | 1 | /* mbed Microcontroller Library - I2C |
simon.ford@mbed.co.uk | 0:82220227f4fa | 2 | * Copyright (c) 2007-2008, sford |
simon.ford@mbed.co.uk | 0:82220227f4fa | 3 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 4 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 5 | #ifndef MBED_I2C_H |
simon.ford@mbed.co.uk | 0:82220227f4fa | 6 | #define MBED_I2C_H |
simon.ford@mbed.co.uk | 0:82220227f4fa | 7 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 8 | #include "Base.h" |
simon.ford@mbed.co.uk | 0:82220227f4fa | 9 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 10 | namespace mbed { |
simon.ford@mbed.co.uk | 0:82220227f4fa | 11 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 12 | /* Class: I2C |
simon.ford@mbed.co.uk | 0:82220227f4fa | 13 | * An I2C Master, used for communicating with I2C slave devices |
simon.ford@mbed.co.uk | 0:82220227f4fa | 14 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 15 | class I2C : public Base { |
simon.ford@mbed.co.uk | 0:82220227f4fa | 16 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 17 | public: |
simon.ford@mbed.co.uk | 0:82220227f4fa | 18 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 19 | /* Group: Configuration Methods */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 20 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 21 | /* Constructor: I2C |
simon.ford@mbed.co.uk | 0:82220227f4fa | 22 | * Create an I2C Master interface, connected to the specified pins |
simon.ford@mbed.co.uk | 0:82220227f4fa | 23 | * |
simon.ford@mbed.co.uk | 0:82220227f4fa | 24 | * Variables: |
simon.ford@mbed.co.uk | 0:82220227f4fa | 25 | * sda - I2C data line pin |
simon.ford@mbed.co.uk | 0:82220227f4fa | 26 | * scl - I2C clock line pin |
simon.ford@mbed.co.uk | 0:82220227f4fa | 27 | * |
simon.ford@mbed.co.uk | 0:82220227f4fa | 28 | * Pin Options: |
simon.ford@mbed.co.uk | 0:82220227f4fa | 29 | * (9, 10) or (28, 27) |
simon.ford@mbed.co.uk | 0:82220227f4fa | 30 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 31 | I2C(int sda, int scl); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 32 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 33 | /* Function: frequency |
simon.ford@mbed.co.uk | 0:82220227f4fa | 34 | * Set the frequency of the I2C interface |
simon.ford@mbed.co.uk | 0:82220227f4fa | 35 | * |
simon.ford@mbed.co.uk | 0:82220227f4fa | 36 | * Variables: |
simon.ford@mbed.co.uk | 0:82220227f4fa | 37 | * hz - The bus frequency in hertz |
simon.ford@mbed.co.uk | 0:82220227f4fa | 38 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 39 | void frequency(int hz); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 40 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 41 | /* Group: Access Methods */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 42 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 43 | /* Function: read |
simon.ford@mbed.co.uk | 0:82220227f4fa | 44 | * Read from an I2C slave |
simon.ford@mbed.co.uk | 0:82220227f4fa | 45 | * |
simon.ford@mbed.co.uk | 0:82220227f4fa | 46 | * Variables: |
simon.ford@mbed.co.uk | 0:82220227f4fa | 47 | * address - 7-bit I2C slave address (0-127) |
simon.ford@mbed.co.uk | 0:82220227f4fa | 48 | * data - Pointer to the byte-array to read data in to |
simon.ford@mbed.co.uk | 0:82220227f4fa | 49 | * length - Number of bytes to read |
simon.ford@mbed.co.uk | 0:82220227f4fa | 50 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 51 | void read(int address, char* data, int length); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 52 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 53 | /* Function: write |
simon.ford@mbed.co.uk | 0:82220227f4fa | 54 | * Write to an I2C slave |
simon.ford@mbed.co.uk | 0:82220227f4fa | 55 | * |
simon.ford@mbed.co.uk | 0:82220227f4fa | 56 | * Variables: |
simon.ford@mbed.co.uk | 0:82220227f4fa | 57 | * address - 7-bit I2C slave address (0-127) |
simon.ford@mbed.co.uk | 0:82220227f4fa | 58 | * data - Pointer to the byte-array data to send |
simon.ford@mbed.co.uk | 0:82220227f4fa | 59 | * length - Number of bytes to send |
simon.ford@mbed.co.uk | 0:82220227f4fa | 60 | */ |
simon.ford@mbed.co.uk | 0:82220227f4fa | 61 | void write(int address, char* data, int length); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 62 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 63 | protected: |
simon.ford@mbed.co.uk | 0:82220227f4fa | 64 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 65 | void configure(); |
simon.ford@mbed.co.uk | 0:82220227f4fa | 66 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 67 | int _id; |
simon.ford@mbed.co.uk | 0:82220227f4fa | 68 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 69 | int _uid; |
simon.ford@mbed.co.uk | 0:82220227f4fa | 70 | static int _uidcounter; |
simon.ford@mbed.co.uk | 0:82220227f4fa | 71 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 72 | int _hz; |
simon.ford@mbed.co.uk | 0:82220227f4fa | 73 | static int _config[3]; |
simon.ford@mbed.co.uk | 0:82220227f4fa | 74 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 75 | }; |
simon.ford@mbed.co.uk | 0:82220227f4fa | 76 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 77 | } |
simon.ford@mbed.co.uk | 0:82220227f4fa | 78 | |
simon.ford@mbed.co.uk | 0:82220227f4fa | 79 | #endif |