Hardware Braille Simulator / Mbed 2 deprecated MI2C

Dependencies:   mbed

Committer:
rrbeauch
Date:
Wed Nov 19 22:47:17 2014 +0000
Revision:
1:d03710f41041
Parent:
0:942156b7d5e8
Trying out specific write. General write does not seem to work as indicated by LED1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rrbeauch 0:942156b7d5e8 1 #include "mbed.h"
rrbeauch 0:942156b7d5e8 2
rrbeauch 0:942156b7d5e8 3 //-------------------------------------------------------
rrbeauch 0:942156b7d5e8 4 //Title: main.cpp
rrbeauch 0:942156b7d5e8 5 //Author: Richard Beauchemin
rrbeauch 0:942156b7d5e8 6 //Date: 11/17/2014
rrbeauch 0:942156b7d5e8 7 //Description: Motherboard I2C communication test.
rrbeauch 0:942156b7d5e8 8 //-------------------------------------------------------
rrbeauch 0:942156b7d5e8 9
rrbeauch 0:942156b7d5e8 10 //-------------------------------------------------------
rrbeauch 0:942156b7d5e8 11 //Global Variables
rrbeauch 0:942156b7d5e8 12 I2C mI2C(p28,p27);
rrbeauch 1:d03710f41041 13 DigitalOut sendGenLED(LED1);
rrbeauch 0:942156b7d5e8 14 DigitalOut receiveLED(LED2);
rrbeauch 1:d03710f41041 15 DigitalOut sendSpecLED(LED3);
rrbeauch 0:942156b7d5e8 16 int dCardAddress = 0x02;
rrbeauch 1:d03710f41041 17 char sendMSG = 'Z';
rrbeauch 0:942156b7d5e8 18 char msg[2];
rrbeauch 0:942156b7d5e8 19 //-------------------------------------------------------
rrbeauch 0:942156b7d5e8 20
rrbeauch 0:942156b7d5e8 21 //-------------------------------------------------------
rrbeauch 0:942156b7d5e8 22 //Function Declarations
rrbeauch 0:942156b7d5e8 23 int writeCell(int,char*);
rrbeauch 0:942156b7d5e8 24 int writeRow(int,char[],int);
rrbeauch 0:942156b7d5e8 25 //-------------------------------------------------------
rrbeauch 0:942156b7d5e8 26
rrbeauch 0:942156b7d5e8 27 int writeCell(int address, char* data)
rrbeauch 0:942156b7d5e8 28 {
rrbeauch 0:942156b7d5e8 29 return mI2C.write((address),data,1,0);
rrbeauch 0:942156b7d5e8 30 }
rrbeauch 0:942156b7d5e8 31
rrbeauch 0:942156b7d5e8 32 int writeRow(int address, char data[], int length)
rrbeauch 0:942156b7d5e8 33 {
rrbeauch 0:942156b7d5e8 34 int ACK = 1;
rrbeauch 0:942156b7d5e8 35 while(length)
rrbeauch 0:942156b7d5e8 36 {
rrbeauch 0:942156b7d5e8 37 ACK &= writeCell(address,&data[length - 1]);
rrbeauch 0:942156b7d5e8 38 length--;
rrbeauch 0:942156b7d5e8 39 }
rrbeauch 0:942156b7d5e8 40 return ACK;
rrbeauch 0:942156b7d5e8 41 }
rrbeauch 0:942156b7d5e8 42
rrbeauch 0:942156b7d5e8 43
rrbeauch 0:942156b7d5e8 44 int main()
rrbeauch 0:942156b7d5e8 45 {
rrbeauch 1:d03710f41041 46 sendGenLED = 0;
rrbeauch 0:942156b7d5e8 47 receiveLED = 0;
rrbeauch 0:942156b7d5e8 48 //mI2C.frequency(100000);
rrbeauch 0:942156b7d5e8 49 int data = 0x0001;
rrbeauch 0:942156b7d5e8 50 while(1)
rrbeauch 0:942156b7d5e8 51 {
rrbeauch 1:d03710f41041 52 if(mI2C.write(data))
rrbeauch 1:d03710f41041 53 sendGenLED = 1;
rrbeauch 1:d03710f41041 54 if(!mI2C.write(dCardAddress,&sendMSG,1,0))
rrbeauch 1:d03710f41041 55 sendSpecLED = 1;
rrbeauch 0:942156b7d5e8 56 mI2C.read((dCardAddress),msg,2,0);
rrbeauch 0:942156b7d5e8 57 if(msg[0] || msg[1])
rrbeauch 0:942156b7d5e8 58 {
rrbeauch 0:942156b7d5e8 59 receiveLED = 1;
rrbeauch 0:942156b7d5e8 60 msg[0] = 0;
rrbeauch 0:942156b7d5e8 61 msg[1] = 0;
rrbeauch 0:942156b7d5e8 62 }
rrbeauch 0:942156b7d5e8 63 wait(0.5);
rrbeauch 1:d03710f41041 64 sendGenLED = 0;
rrbeauch 1:d03710f41041 65 receiveLED = 0;
rrbeauch 1:d03710f41041 66 sendSpecLED = 0;
rrbeauch 0:942156b7d5e8 67 }
rrbeauch 0:942156b7d5e8 68 /*receiveLED = writeRow(dCardAddress, msg, 6);
rrbeauch 0:942156b7d5e8 69 while(1)
rrbeauch 0:942156b7d5e8 70 {
rrbeauch 0:942156b7d5e8 71 sendLED = 1;
rrbeauch 0:942156b7d5e8 72 wait(0.2);
rrbeauch 0:942156b7d5e8 73 sendLED = 0;
rrbeauch 0:942156b7d5e8 74 }*/
rrbeauch 0:942156b7d5e8 75 }