Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@1:d03710f41041, 2014-11-19 (annotated)
- 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?
User | Revision | Line number | New 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 | } |