Prof Greg Egan I2C code, prevents I2C freeze when using interrupt in
MyI2C.h@0:1c722325e933, 2013-08-27 (annotated)
- Committer:
- KarimAzzouz
- Date:
- Tue Aug 27 09:31:56 2013 +0000
- Revision:
- 0:1c722325e933
Prof Greg Egan I2C code, initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
KarimAzzouz | 0:1c722325e933 | 1 | #ifndef MyI2C_H |
KarimAzzouz | 0:1c722325e933 | 2 | #define MyI2C_H |
KarimAzzouz | 0:1c722325e933 | 3 | |
KarimAzzouz | 0:1c722325e933 | 4 | #include "mbed.h" |
KarimAzzouz | 0:1c722325e933 | 5 | |
KarimAzzouz | 0:1c722325e933 | 6 | #define I2C_ACK true |
KarimAzzouz | 0:1c722325e933 | 7 | #define I2C_NACK false |
KarimAzzouz | 0:1c722325e933 | 8 | |
KarimAzzouz | 0:1c722325e933 | 9 | #define I2C_WRITE 0 |
KarimAzzouz | 0:1c722325e933 | 10 | #define I2C_READ 1 |
KarimAzzouz | 0:1c722325e933 | 11 | |
KarimAzzouz | 0:1c722325e933 | 12 | extern bool I2C0AddressResponds(uint8_t); |
KarimAzzouz | 0:1c722325e933 | 13 | |
KarimAzzouz | 0:1c722325e933 | 14 | class MyI2C |
KarimAzzouz | 0:1c722325e933 | 15 | { |
KarimAzzouz | 0:1c722325e933 | 16 | private: |
KarimAzzouz | 0:1c722325e933 | 17 | bool waitclock(void); |
KarimAzzouz | 0:1c722325e933 | 18 | public: |
KarimAzzouz | 0:1c722325e933 | 19 | //void frequency(uint32_t f); |
KarimAzzouz | 0:1c722325e933 | 20 | void start(void); |
KarimAzzouz | 0:1c722325e933 | 21 | void stop(void); |
KarimAzzouz | 0:1c722325e933 | 22 | uint8_t blockread(uint8_t r, char* b, uint8_t); |
KarimAzzouz | 0:1c722325e933 | 23 | uint8_t read(uint8_t r); |
KarimAzzouz | 0:1c722325e933 | 24 | bool blockwrite(uint8_t a, const char* b, uint8_t l); |
KarimAzzouz | 0:1c722325e933 | 25 | uint8_t write(uint8_t d); |
KarimAzzouz | 0:1c722325e933 | 26 | }; |
KarimAzzouz | 0:1c722325e933 | 27 | |
KarimAzzouz | 0:1c722325e933 | 28 | #endif |