Gemphet8 ; 8-polyphonic synthesizer control application

Dependencies:   MIDI REnc button mbed

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?

UserRevisionLine numberNew 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 }