Equipo7 LabMicros / Mbed 2 deprecated I2C_3B

Dependencies:   mbed LiquidCrystal_I2C_for_KL25Z

Committer:
micros22eq7
Date:
Tue Apr 26 14:12:26 2022 +0000
Revision:
2:498f4d75c4bc
Parent:
1:5f15147dfad8
vf

Who changed what in which revision?

UserRevisionLine numberNew contents of line
micros22eq7 0:3e5902ddcd6e 1 //CÓDIGO 3-B
micros22eq7 0:3e5902ddcd6e 2
micros22eq7 0:3e5902ddcd6e 3 #include "mbed.h"
micros22eq7 0:3e5902ddcd6e 4 #include "stdlib.h"
micros22eq7 0:3e5902ddcd6e 5 #include <LiquidCrystal_I2C.h>
micros22eq7 0:3e5902ddcd6e 6 #include <iostream>
micros22eq7 0:3e5902ddcd6e 7 #include <string>
micros22eq7 0:3e5902ddcd6e 8
micros22eq7 0:3e5902ddcd6e 9 Serial pc(USBTX, USBRX); // tx, rx
micros22eq7 0:3e5902ddcd6e 10
micros22eq7 0:3e5902ddcd6e 11 //Los puertos SDA y SD8 están referenciados en el archivo LiquidCrystal_I2C.cpp
micros22eq7 0:3e5902ddcd6e 12 // SDA -> PTC9
micros22eq7 0:3e5902ddcd6e 13 // SCL -> PTC8
micros22eq7 0:3e5902ddcd6e 14 // DIR TIPO
micros22eq7 0:3e5902ddcd6e 15 LiquidCrystal_I2C lcd(0x4E, 16, 2);
micros22eq7 0:3e5902ddcd6e 16 I2CSlave slave(I2C_SDA, I2C_SCL);
micros22eq7 0:3e5902ddcd6e 17 char addr = 0xA0;
micros22eq7 0:3e5902ddcd6e 18
micros22eq7 0:3e5902ddcd6e 19 int main()
micros22eq7 0:3e5902ddcd6e 20 {
micros22eq7 1:5f15147dfad8 21 PwmOut rled(LED1);
micros22eq7 1:5f15147dfad8 22 PwmOut gled(LED2);
micros22eq7 1:5f15147dfad8 23 PwmOut bled(LED3);
micros22eq7 1:5f15147dfad8 24
micros22eq7 1:5f15147dfad8 25 float x, y, z;
micros22eq7 1:5f15147dfad8 26
micros22eq7 1:5f15147dfad8 27 pc.printf("\r\n");
micros22eq7 1:5f15147dfad8 28 char buf[16];
micros22eq7 2:498f4d75c4bc 29 lcd.begin(); // Inicia la LCD
micros22eq7 0:3e5902ddcd6e 30 slave.address(addr);
micros22eq7 0:3e5902ddcd6e 31 slave.frequency (100000);
micros22eq7 1:5f15147dfad8 32
micros22eq7 0:3e5902ddcd6e 33 lcd.clear();
micros22eq7 1:5f15147dfad8 34 lcd.print("Datos obtenidos:");
micros22eq7 1:5f15147dfad8 35 char msg[] = "Respuesta slave";
micros22eq7 1:5f15147dfad8 36 while (1)
micros22eq7 0:3e5902ddcd6e 37 {
micros22eq7 0:3e5902ddcd6e 38 int i = slave.receive();
micros22eq7 0:3e5902ddcd6e 39 switch (i) {
micros22eq7 0:3e5902ddcd6e 40 case I2CSlave::ReadAddressed:
micros22eq7 1:5f15147dfad8 41 slave.write(msg, strlen(msg) + 1);
micros22eq7 1:5f15147dfad8 42 NVIC_SystemReset();
micros22eq7 0:3e5902ddcd6e 43 break;
micros22eq7 0:3e5902ddcd6e 44 case I2CSlave::WriteGeneral:
micros22eq7 1:5f15147dfad8 45 slave.read(buf, 16);
micros22eq7 0:3e5902ddcd6e 46 printf("\rRead General: %s\n", buf);
micros22eq7 0:3e5902ddcd6e 47 break;
micros22eq7 0:3e5902ddcd6e 48 case I2CSlave::WriteAddressed:
micros22eq7 1:5f15147dfad8 49 slave.read(buf, 16);
micros22eq7 0:3e5902ddcd6e 50 pc.printf("\rRead Addressed: %s\n", buf);
micros22eq7 0:3e5902ddcd6e 51
micros22eq7 1:5f15147dfad8 52 sscanf(buf, "%f, %f, %f", &x, &y, &z);
micros22eq7 2:498f4d75c4bc 53 //rled = 1.0f - x; //Encender LED interno
micros22eq7 2:498f4d75c4bc 54 //gled = 1.0f - y;
micros22eq7 2:498f4d75c4bc 55 //bled = 1.0f - z;
micros22eq7 1:5f15147dfad8 56
micros22eq7 1:5f15147dfad8 57 lcd.setCursor(2, 1);
micros22eq7 0:3e5902ddcd6e 58 lcd.print(buf);
micros22eq7 1:5f15147dfad8 59 NVIC_SystemReset();
micros22eq7 0:3e5902ddcd6e 60 break;
micros22eq7 0:3e5902ddcd6e 61 }
micros22eq7 1:5f15147dfad8 62 for (int i = 0; i < 16; i++) {
micros22eq7 0:3e5902ddcd6e 63 buf[i] = 0; // Clear buffer
micros22eq7 0:3e5902ddcd6e 64 }
micros22eq7 0:3e5902ddcd6e 65 }
micros22eq7 0:3e5902ddcd6e 66 }