Test
Dependencies: mbed AccelSensor
main.cpp@3:4e4e4d7f6ee1, 2013-01-15 (annotated)
- 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?
User | Revision | Line number | New 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 | } |