Gemphet8 ; 8-polyphonic synthesizer control application
Dependencies: MIDI REnc button mbed
I2CEEPROM/I2CEEprom.cpp@12:dc6208de53cc, 2014-12-13 (annotated)
- Committer:
- ChuckTimber
- Date:
- Sat Dec 13 10:51:48 2014 +0000
- Revision:
- 12:dc6208de53cc
- Parent:
- 2:3514a8b850dd
Gemphet8 2014/11/29 version.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ChuckTimber | 2:3514a8b850dd | 1 | // http://robot.tamagawa.ac.jp:8080/cyber/mbed/i2c_memory.html |
ChuckTimber | 2:3514a8b850dd | 2 | |
ChuckTimber | 2:3514a8b850dd | 3 | #include "I2CEEprom.h" |
ChuckTimber | 2:3514a8b850dd | 4 | // 24LC64 の書き込み、読み込みテスト |
ChuckTimber | 2:3514a8b850dd | 5 | |
ChuckTimber | 2:3514a8b850dd | 6 | //I2C i2c(p9, p10); //p9: data, p10: clock |
ChuckTimber | 2:3514a8b850dd | 7 | |
ChuckTimber | 2:3514a8b850dd | 8 | I2CEEprom::I2CEEprom():I2C(p9,p10) |
ChuckTimber | 2:3514a8b850dd | 9 | { |
ChuckTimber | 2:3514a8b850dd | 10 | addr = 0xA0; |
ChuckTimber | 2:3514a8b850dd | 11 | } |
ChuckTimber | 2:3514a8b850dd | 12 | I2CEEprom::I2CEEprom(PinName data, PinName clock, int address):I2C(data, clock) |
ChuckTimber | 2:3514a8b850dd | 13 | { |
ChuckTimber | 2:3514a8b850dd | 14 | addr = address; |
ChuckTimber | 2:3514a8b850dd | 15 | } |
ChuckTimber | 2:3514a8b850dd | 16 | |
ChuckTimber | 2:3514a8b850dd | 17 | void I2CEEprom::write(unsigned int address, unsigned char data) |
ChuckTimber | 2:3514a8b850dd | 18 | { |
ChuckTimber | 2:3514a8b850dd | 19 | start(); |
ChuckTimber | 2:3514a8b850dd | 20 | ((I2C*)this)->write(addr); |
ChuckTimber | 2:3514a8b850dd | 21 | ((I2C*)this)->write((address>>8)&0xff); |
ChuckTimber | 2:3514a8b850dd | 22 | ((I2C*)this)->write(address & 0xff); |
ChuckTimber | 2:3514a8b850dd | 23 | ((I2C*)this)->write(data); |
ChuckTimber | 2:3514a8b850dd | 24 | stop(); |
ChuckTimber | 2:3514a8b850dd | 25 | } |
ChuckTimber | 2:3514a8b850dd | 26 | |
ChuckTimber | 2:3514a8b850dd | 27 | unsigned char I2CEEprom::read(unsigned int address) |
ChuckTimber | 2:3514a8b850dd | 28 | { |
ChuckTimber | 2:3514a8b850dd | 29 | unsigned char x; |
ChuckTimber | 2:3514a8b850dd | 30 | start(); |
ChuckTimber | 2:3514a8b850dd | 31 | ((I2C*)this)->write(addr); |
ChuckTimber | 2:3514a8b850dd | 32 | ((I2C*)this)->write((address>>8)&0xff); |
ChuckTimber | 2:3514a8b850dd | 33 | ((I2C*)this)->write(address&0xff); |
ChuckTimber | 2:3514a8b850dd | 34 | start(); |
ChuckTimber | 2:3514a8b850dd | 35 | ((I2C*)this)->write(addr+1); |
ChuckTimber | 2:3514a8b850dd | 36 | x = ((I2C*)this)->read(0); |
ChuckTimber | 2:3514a8b850dd | 37 | stop(); |
ChuckTimber | 2:3514a8b850dd | 38 | return x; |
ChuckTimber | 2:3514a8b850dd | 39 | } |