Test

Dependencies:   mbed AccelSensor

Committer:
Alegrowin
Date:
Tue Jan 15 05:25:08 2013 +0000
Revision:
3:4e4e4d7f6ee1
Parent:
2:3e6b509d7eca
Child:
4:3397631c2f65
The 7seg display is now working on the I2C

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Alegrowin 0:b325845b05af 1 #include "mbed.h"
Alegrowin 0:b325845b05af 2
Alegrowin 2:3e6b509d7eca 3 I2C i2c(p9, p10); // sda, scl
Alegrowin 0:b325845b05af 4 Serial pc(USBTX, USBRX); // tx, rx
Alegrowin 3:4e4e4d7f6ee1 5 Serial Damn(p28,p27);
Alegrowin 3:4e4e4d7f6ee1 6
Alegrowin 0:b325845b05af 7
Alegrowin 0:b325845b05af 8 const int addr = 0x9A; // define the I2C Address for TC74-A0
Alegrowin 3:4e4e4d7f6ee1 9 const int Afficheur_addr = 0xE2; // define the I2C Address for 4*7seg display
Alegrowin 0:b325845b05af 10
Alegrowin 0:b325845b05af 11 int main()
Alegrowin 0:b325845b05af 12 {
Alegrowin 0:b325845b05af 13 int temp = 0;
Alegrowin 0:b325845b05af 14 int a,b,c;
Alegrowin 0:b325845b05af 15 char cmd[2];
Alegrowin 0:b325845b05af 16
Alegrowin 1:60bb79c9a01e 17 wait(1); //Make sure system is fully initialized
Alegrowin 1:60bb79c9a01e 18
Alegrowin 3:4e4e4d7f6ee1 19 cmd[0] = 0x76;
Alegrowin 3:4e4e4d7f6ee1 20 i2c.write(Afficheur_addr,cmd,1);
Alegrowin 3:4e4e4d7f6ee1 21
Alegrowin 0:b325845b05af 22 while(1) {
Alegrowin 1:60bb79c9a01e 23 pc.printf("\r\n\nStart reading the temperature of TC74 on I2C\r\n");
Alegrowin 0:b325845b05af 24
Alegrowin 0:b325845b05af 25 //Méthode 1
Alegrowin 1:60bb79c9a01e 26 //Utilisation des fonctions bas niveau
Alegrowin 0:b325845b05af 27
Alegrowin 1:60bb79c9a01e 28 i2c.start(); // Start condition
Alegrowin 1:60bb79c9a01e 29 a = i2c.write(addr); // Write Device Address
Alegrowin 1:60bb79c9a01e 30 b = i2c.write(0x00); // Write READ command of TC74 (voir page 8 de la datasheet du TC74)
Alegrowin 1:60bb79c9a01e 31
Alegrowin 1:60bb79c9a01e 32 i2c.start(); //Reissue start condition
Alegrowin 1:60bb79c9a01e 33 //Au lieu de faire Stop condition et Start de nouveau
Alegrowin 0:b325845b05af 34
Alegrowin 1:60bb79c9a01e 35 c= i2c.write(addr|1); //Adresse du Device en mode Lecture
Alegrowin 1:60bb79c9a01e 36 temp = i2c.read(0); //Lecture de la valeur du registre de température
Alegrowin 1:60bb79c9a01e 37 i2c.stop(); //Fermeture de la trame
Alegrowin 0:b325845b05af 38
Alegrowin 0:b325845b05af 39 //Méthode 2
Alegrowin 1:60bb79c9a01e 40 //Utilisation des fonctions haut niveau
Alegrowin 1:60bb79c9a01e 41
Alegrowin 1:60bb79c9a01e 42 cmd[0] = 0x0; //Command :: READ
Alegrowin 1:60bb79c9a01e 43 cmd[1] = 0x0; //Param :: Unused in this case
Alegrowin 1:60bb79c9a01e 44 i2c.write(addr, cmd, 1); //Issue required command to perform a write of the command
Alegrowin 1:60bb79c9a01e 45 i2c.read(addr, cmd, 1); //Read the Data from the device
Alegrowin 0:b325845b05af 46
Alegrowin 1:60bb79c9a01e 47 //-----------------Print out section ----------------------
Alegrowin 1:60bb79c9a01e 48 //Display device Address and informations
Alegrowin 3:4e4e4d7f6ee1 49
Alegrowin 1:60bb79c9a01e 50 pc.printf("Device with address 0x%x with\r\n", addr);
Alegrowin 0:b325845b05af 51
Alegrowin 1:60bb79c9a01e 52 //Prints out the result of Method 1
Alegrowin 1:60bb79c9a01e 53 //pc.printf("ACK1 :: %d\n\rACK2 :: %d\n\rACK3 :: %d\n\r", a,b,c); //ACK bits
Alegrowin 1:60bb79c9a01e 54 pc.printf("Method 1 :: %d\n\r", temp);
Alegrowin 1:60bb79c9a01e 55
Alegrowin 1:60bb79c9a01e 56 //Prints out the Data from Method 2
Alegrowin 2:3e6b509d7eca 57 pc.printf("Method 2 :: %d\r\n\n", cmd[0]);
Alegrowin 0:b325845b05af 58
Alegrowin 3:4e4e4d7f6ee1 59 cmd[0] = 0x7b;
Alegrowin 3:4e4e4d7f6ee1 60 cmd[1] = 0x3E;
Alegrowin 3:4e4e4d7f6ee1 61
Alegrowin 3:4e4e4d7f6ee1 62 i2c.write(Afficheur_addr,cmd,2);
Alegrowin 1:60bb79c9a01e 63
Alegrowin 3:4e4e4d7f6ee1 64 wait(0.07);
Alegrowin 2:3e6b509d7eca 65
Alegrowin 3:4e4e4d7f6ee1 66 cmd[0] = 0x7c;
Alegrowin 3:4e4e4d7f6ee1 67 cmd[1] = 0x79;
Alegrowin 3:4e4e4d7f6ee1 68
Alegrowin 3:4e4e4d7f6ee1 69 i2c.write(Afficheur_addr,cmd,2);
Alegrowin 3:4e4e4d7f6ee1 70
Alegrowin 3:4e4e4d7f6ee1 71 wait(0.07);
Alegrowin 3:4e4e4d7f6ee1 72
Alegrowin 3:4e4e4d7f6ee1 73 cmd[0] = 0x7d;
Alegrowin 3:4e4e4d7f6ee1 74 cmd[1] = 0x77;
Alegrowin 3:4e4e4d7f6ee1 75
Alegrowin 3:4e4e4d7f6ee1 76 i2c.write(Afficheur_addr,cmd,2);
Alegrowin 3:4e4e4d7f6ee1 77
Alegrowin 3:4e4e4d7f6ee1 78 wait(0.07);
Alegrowin 3:4e4e4d7f6ee1 79
Alegrowin 3:4e4e4d7f6ee1 80 cmd[0] = 0x7e;
Alegrowin 3:4e4e4d7f6ee1 81 cmd[1] = 0x3F;
Alegrowin 3:4e4e4d7f6ee1 82
Alegrowin 3:4e4e4d7f6ee1 83 i2c.write(Afficheur_addr,cmd,2);
Alegrowin 0:b325845b05af 84 wait(1);
Alegrowin 0:b325845b05af 85 }
Alegrowin 0:b325845b05af 86 }