Hardware Braille Simulator / Mbed 2 deprecated MI2C

Dependencies:   mbed

Committer:
rrbeauch
Date:
Wed Nov 19 22:34:10 2014 +0000
Revision:
0:942156b7d5e8
Child:
1:d03710f41041
Mother I2C can receive and send ACK not working very well

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 0:942156b7d5e8 13 DigitalOut sendLED(LED1);
rrbeauch 0:942156b7d5e8 14 DigitalOut receiveLED(LED2);
rrbeauch 0:942156b7d5e8 15 int dCardAddress = 0x02;
rrbeauch 0:942156b7d5e8 16 //char msg[6] = {'(','T','E','S','T',')'};
rrbeauch 0:942156b7d5e8 17 char msg[2];
rrbeauch 0:942156b7d5e8 18 //-------------------------------------------------------
rrbeauch 0:942156b7d5e8 19
rrbeauch 0:942156b7d5e8 20 //-------------------------------------------------------
rrbeauch 0:942156b7d5e8 21 //Function Declarations
rrbeauch 0:942156b7d5e8 22 int writeCell(int,char*);
rrbeauch 0:942156b7d5e8 23 int writeRow(int,char[],int);
rrbeauch 0:942156b7d5e8 24 //-------------------------------------------------------
rrbeauch 0:942156b7d5e8 25
rrbeauch 0:942156b7d5e8 26 int writeCell(int address, char* data)
rrbeauch 0:942156b7d5e8 27 {
rrbeauch 0:942156b7d5e8 28 return mI2C.write((address),data,1,0);
rrbeauch 0:942156b7d5e8 29 }
rrbeauch 0:942156b7d5e8 30
rrbeauch 0:942156b7d5e8 31 int writeRow(int address, char data[], int length)
rrbeauch 0:942156b7d5e8 32 {
rrbeauch 0:942156b7d5e8 33 int ACK = 1;
rrbeauch 0:942156b7d5e8 34 while(length)
rrbeauch 0:942156b7d5e8 35 {
rrbeauch 0:942156b7d5e8 36 ACK &= writeCell(address,&data[length - 1]);
rrbeauch 0:942156b7d5e8 37 length--;
rrbeauch 0:942156b7d5e8 38 }
rrbeauch 0:942156b7d5e8 39 return ACK;
rrbeauch 0:942156b7d5e8 40 }
rrbeauch 0:942156b7d5e8 41
rrbeauch 0:942156b7d5e8 42
rrbeauch 0:942156b7d5e8 43 int main()
rrbeauch 0:942156b7d5e8 44 {
rrbeauch 0:942156b7d5e8 45 sendLED = 0;
rrbeauch 0:942156b7d5e8 46 receiveLED = 0;
rrbeauch 0:942156b7d5e8 47 //mI2C.frequency(100000);
rrbeauch 0:942156b7d5e8 48 int data = 0x0001;
rrbeauch 0:942156b7d5e8 49 while(1)
rrbeauch 0:942156b7d5e8 50 {
rrbeauch 0:942156b7d5e8 51 mI2C.write(data);
rrbeauch 0:942156b7d5e8 52 sendLED = 1;
rrbeauch 0:942156b7d5e8 53 mI2C.read((dCardAddress),msg,2,0);
rrbeauch 0:942156b7d5e8 54 if(msg[0] || msg[1])
rrbeauch 0:942156b7d5e8 55 {
rrbeauch 0:942156b7d5e8 56 receiveLED = 1;
rrbeauch 0:942156b7d5e8 57 msg[0] = 0;
rrbeauch 0:942156b7d5e8 58 msg[1] = 0;
rrbeauch 0:942156b7d5e8 59 }
rrbeauch 0:942156b7d5e8 60
rrbeauch 0:942156b7d5e8 61 wait(0.5);
rrbeauch 0:942156b7d5e8 62 sendLED = 0;
rrbeauch 0:942156b7d5e8 63 receiveLED = 0;
rrbeauch 0:942156b7d5e8 64 }
rrbeauch 0:942156b7d5e8 65 /*receiveLED = writeRow(dCardAddress, msg, 6);
rrbeauch 0:942156b7d5e8 66 while(1)
rrbeauch 0:942156b7d5e8 67 {
rrbeauch 0:942156b7d5e8 68 sendLED = 1;
rrbeauch 0:942156b7d5e8 69 wait(0.2);
rrbeauch 0:942156b7d5e8 70 sendLED = 0;
rrbeauch 0:942156b7d5e8 71 }*/
rrbeauch 0:942156b7d5e8 72 }