Equipo7 LabMicros / Mbed 2 deprecated I2C_3B

Dependencies:   mbed LiquidCrystal_I2C_for_KL25Z

Files at this revision

API Documentation at this revision

Comitter:
micros22eq7
Date:
Tue Apr 26 05:26:07 2022 +0000
Parent:
0:3e5902ddcd6e
Child:
2:498f4d75c4bc
Commit message:
v5;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Apr 25 18:47:38 2022 +0000
+++ b/main.cpp	Tue Apr 26 05:26:07 2022 +0000
@@ -21,50 +21,53 @@
 
 int main()
 {
-    pc.printf("\x1b[2J");       //CLEAR
-    pc.printf("\033[1;1H");     //Mueve cursor al origen
-
-    char buf[50];
+    PwmOut rled(LED1);
+    PwmOut gled(LED2);
+    PwmOut bled(LED3);
+    
+    float x, y, z;
+    
+    pc.printf("\r\n");
+    char buf[16];
      
     // Inicia la LCD
     lcd.begin();
-    
+   
     slave.address(addr);
     slave.frequency (100000);
-    pc.printf("SLAVE ID: %d\r\n", addr);
-    
+   
     lcd.clear();
-    lcd.print("I'M SLAVE");
-    char msg[] = " *Si* ";
-    while (1) 
+    lcd.print("Datos obtenidos:");
+    char msg[] = "Respuesta slave";
+    while (1)
     {
         int i = slave.receive();
-        
+       
         switch (i) {
             case I2CSlave::ReadAddressed:
-                slave.write(msg, strlen(msg) + 1); // Includes null char
-                slave.stop();
-                slave.receive();
+                slave.write(msg, strlen(msg) + 1);
+                NVIC_SystemReset();
                 break;
             case I2CSlave::WriteGeneral:
-                slave.read(buf, 30);
+                slave.read(buf, 16);
                 printf("\rRead General: %s\n", buf);
-                slave.stop();
-                slave.receive();
                 break;
             case I2CSlave::WriteAddressed:
-                slave.read(buf, 30);
+                slave.read(buf, 16);
                 pc.printf("\rRead Addressed: %s\n", buf);
                 
-                lcd.clear();
+                sscanf(buf, "%f, %f, %f", &x, &y, &z);
+                rled = 1.0f - x; //Encender LED interno
+                gled = 1.0f - y;
+                bled = 1.0f - z;
+                
+                lcd.setCursor(2, 1);
                 lcd.print(buf);
-                slave.stop();
-                slave.receive();
+                NVIC_SystemReset();
                 break;
         }
-        for (int i = 0; i < 10; i++) {
+        for (int i = 0; i < 16; i++) {
             buf[i] = 0;    // Clear buffer
         }
-       
     }
 }
\ No newline at end of file