FRDM-KL46Z_I2C-Scanner Es un programa para detectar los dispositivos conectados al Bus I2C

Dependencies:   FRDM_TSI mbed

Committer:
Antulius
Date:
Wed Jul 03 18:54:45 2019 +0000
Revision:
7:e8b0b94a5cdf
Parent:
6:333a2763ad29
FRDM-KL46Z_I2C-Scanner  Es un programa para detectar las direcciones de los dispositivos conenctados al bus I2C

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Antulius 6:333a2763ad29 1 /* ###########################################################################
Antulius 6:333a2763ad29 2 ** Archivo : main.c
Antulius 7:e8b0b94a5cdf 3 ** Proyecto : FRDM-KL46Z_I2C_Scanner
Antulius 6:333a2763ad29 4 ** Procesador : MKL46Z256VLL4
Antulius 6:333a2763ad29 5 ** Herramienta : Mbed
Antulius 6:333a2763ad29 6 ** Version : Driver 01.01
Antulius 6:333a2763ad29 7 ** Compilador : GNU C Compiler
Antulius 6:333a2763ad29 8 ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0
Antulius 6:333a2763ad29 9 ** Descripción :
Antulius 7:e8b0b94a5cdf 10 ** Esta utileria inspecciona el bus I2C y enumera los dispositivos
Antulius 7:e8b0b94a5cdf 11 ** conectados. Proporciona su dirección base (en DEC y HEX).
Antulius 7:e8b0b94a5cdf 12 ** Componentes : I2C, Serial and Digital Output.
Antulius 6:333a2763ad29 13 ** Configuraciones : Includes, Stacks y Drivers externos
Antulius 6:333a2763ad29 14 ** Autores :
Antulius 6:333a2763ad29 15 ** ATEAM Development Group:
Antulius 6:333a2763ad29 16 ** - Antulio Morgado Valle
Antulius 6:333a2763ad29 17 **
Antulius 6:333a2763ad29 18 ** Versión : Beta
Antulius 6:333a2763ad29 19 ** Revisión : A
Antulius 6:333a2763ad29 20 ** Release : 0
Antulius 7:e8b0b94a5cdf 21 ** Date : 20/10/2019
Antulius 6:333a2763ad29 22 ** Bugs & Fixes :
Antulius 7:e8b0b94a5cdf 23 **
Antulius 7:e8b0b94a5cdf 24 ** Permission is hereby granted, free of charge, to any person obtaining a copy
Antulius 7:e8b0b94a5cdf 25 ** of this software and associated documentation files (the "Software"), to deal
Antulius 7:e8b0b94a5cdf 26 ** in the Software without restriction, including without limitation the rights
Antulius 7:e8b0b94a5cdf 27 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
Antulius 7:e8b0b94a5cdf 28 ** copies of the Software, and to permit persons to whom the Software is
Antulius 7:e8b0b94a5cdf 29 ** furnished to do so, subject to the following conditions:
Antulius 6:333a2763ad29 30 **
Antulius 7:e8b0b94a5cdf 31 ** The above copyright notice and this permission notice shall be included in
Antulius 7:e8b0b94a5cdf 32 ** all copies or substantial portions of the Software.
Antulius 7:e8b0b94a5cdf 33 **
Antulius 7:e8b0b94a5cdf 34 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Antulius 7:e8b0b94a5cdf 35 ** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Antulius 7:e8b0b94a5cdf 36 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
Antulius 7:e8b0b94a5cdf 37 ** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
Antulius 7:e8b0b94a5cdf 38 ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Antulius 7:e8b0b94a5cdf 39 ** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
Antulius 7:e8b0b94a5cdf 40 ** THE SOFTWARE.
Antulius 6:333a2763ad29 41 ** ###########################################################################*/
Antulius 6:333a2763ad29 42 /*
Antulius 6:333a2763ad29 43 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 6:333a2763ad29 44 : Includes
Antulius 6:333a2763ad29 45 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 6:333a2763ad29 46 */
emilmont 0:0f00f07ebde0 47 #include "mbed.h"
Antulius 7:e8b0b94a5cdf 48 #include "I2C.h"
Antulius 7:e8b0b94a5cdf 49 #include "Serial.h"
Antulius 7:e8b0b94a5cdf 50 //#include "stdio.h"
emilmont 0:0f00f07ebde0 51
Antulius 6:333a2763ad29 52 /*
Antulius 6:333a2763ad29 53 :...............................................................................
Antulius 6:333a2763ad29 54 : Definiciones
Antulius 6:333a2763ad29 55 :...............................................................................
Antulius 6:333a2763ad29 56 */
Antulius 7:e8b0b94a5cdf 57 #define on 0 // Estado para boton presionado
Antulius 7:e8b0b94a5cdf 58 #define off 1 // Estado para boton sin presionar
Antulius 7:e8b0b94a5cdf 59 #define Buzz_Off 0 // Estado del Buzzer Apagado
Antulius 7:e8b0b94a5cdf 60 #define Buzz_On 1 // Estado del Buzzer Encendido
Antulius 6:333a2763ad29 61 /*
Antulius 6:333a2763ad29 62 +-------------------------------------------------------------------------------
Antulius 6:333a2763ad29 63 | Configuración de Puertos
Antulius 6:333a2763ad29 64 +-------------------------------------------------------------------------------
Antulius 6:333a2763ad29 65 */
Antulius 6:333a2763ad29 66
Antulius 7:e8b0b94a5cdf 67 DigitalOut led_monitor(LED1); // Inicializa el LED Monitor
Antulius 7:e8b0b94a5cdf 68 DigitalOut buzzer (PTE31); // Inicializa el Buzzer Piezo Eléctrico
Antulius 7:e8b0b94a5cdf 69 //Serial terminal(USBTX, USBRX); // Inicializa la Comunicación Serial a la PC
Antulius 7:e8b0b94a5cdf 70
Antulius 7:e8b0b94a5cdf 71 /*
Antulius 7:e8b0b94a5cdf 72 ** -------------------------------------------------------------------
Antulius 7:e8b0b94a5cdf 73 ** Inicialización de los Pines de Funciones Especiales.
Antulius 7:e8b0b94a5cdf 74 ** -------------------------------------------------------------------
Antulius 7:e8b0b94a5cdf 75 */
Antulius 7:e8b0b94a5cdf 76 /*************************************************
Antulius 7:e8b0b94a5cdf 77 * Initialize the library with the numbers of the interface pins
Antulius 7:e8b0b94a5cdf 78 * Board FRDM-KL46Z
Antulius 7:e8b0b94a5cdf 79 * IDE Mbed On Line Compiler
Antulius 7:e8b0b94a5cdf 80 * LCD I2C PCF8574A
Antulius 7:e8b0b94a5cdf 81 * Pin Board LCD
Antulius 7:e8b0b94a5cdf 82 * I2C_SCL SCL (white) + resistance pull-up 4.7k
Antulius 7:e8b0b94a5cdf 83 * I2C_SDA SDA (blue) + resistance pull-up 4.7k
Antulius 7:e8b0b94a5cdf 84 * 5V 5V (red)
Antulius 7:e8b0b94a5cdf 85 * GND GND (black)
Antulius 7:e8b0b94a5cdf 86 ***************************************************/
Antulius 7:e8b0b94a5cdf 87 //LiquidCrystal_I2C lcd(0x7E, LCDCOLUMNAS, LCDFILAS);
Antulius 7:e8b0b94a5cdf 88 //i2c_LCD lcd(0x7E, LCDCOLUMNAS, LCDFILAS);
Antulius 7:e8b0b94a5cdf 89
Antulius 7:e8b0b94a5cdf 90 /**************************************************/
Antulius 7:e8b0b94a5cdf 91 // Host PC Communication channels
Antulius 7:e8b0b94a5cdf 92 Serial terminal(USBTX, USBRX); // Tx, Rx (SDA USB terminal)
Antulius 7:e8b0b94a5cdf 93 //Serial terminal(PTE0, PTE1); // Tx, Rx Using MAX3232 or BlueTooth
Antulius 7:e8b0b94a5cdf 94 //Serial terminal(PTA2,PTA1); // Terminal Serial (TTL Level)
Antulius 7:e8b0b94a5cdf 95
Antulius 7:e8b0b94a5cdf 96 // Bluetooth Communication support
Antulius 7:e8b0b94a5cdf 97 //Serial bluetooth(PTE0, PTE1); // Tx, Rx
Antulius 7:e8b0b94a5cdf 98
Antulius 7:e8b0b94a5cdf 99 // I2C Communication
Antulius 7:e8b0b94a5cdf 100 I2C i2c_wire(PTC2,PTC1); // SDA, SCL
Antulius 7:e8b0b94a5cdf 101 //I2C i2c_wire(PTC9,PTC8); // SDA, SCL
Antulius 7:e8b0b94a5cdf 102 //I2C i2c_wire(I2C_SDA,I2C_SCL); // SDA, SCL
Antulius 7:e8b0b94a5cdf 103 //I2C i2c_wire(PTE0,PTE1); // SDA, SCL (Alternativo)
Antulius 7:e8b0b94a5cdf 104
Antulius 6:333a2763ad29 105 /*
Antulius 6:333a2763ad29 106 +-------------------------------------------------------------------------------
Antulius 6:333a2763ad29 107 | Variables Globales de Usuario
Antulius 6:333a2763ad29 108 +-------------------------------------------------------------------------------
Antulius 6:333a2763ad29 109 */
Antulius 7:e8b0b94a5cdf 110 // Las variables globales del usuario van aquí !
Antulius 6:333a2763ad29 111 /*
Antulius 6:333a2763ad29 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 7:e8b0b94a5cdf 113 | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción
Antulius 6:333a2763ad29 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 6:333a2763ad29 115 */
Antulius 7:e8b0b94a5cdf 116 void I2C_Scanner(void);
Antulius 6:333a2763ad29 117
Antulius 7:e8b0b94a5cdf 118 /* END definitions */
Antulius 7:e8b0b94a5cdf 119 /*
Antulius 7:e8b0b94a5cdf 120 #===============================================================================
Antulius 7:e8b0b94a5cdf 121 |
Antulius 7:e8b0b94a5cdf 122 | P R O G R A M A P R I N C I P A L
Antulius 7:e8b0b94a5cdf 123 |
Antulius 7:e8b0b94a5cdf 124 #===============================================================================
Antulius 7:e8b0b94a5cdf 125 */
Antulius 7:e8b0b94a5cdf 126 int main()
Antulius 7:e8b0b94a5cdf 127 { // Inicialización de variables, puertos e interrupciones
Antulius 7:e8b0b94a5cdf 128 terminal.baud(115200); // Se configura la velocidad de transmisión e inicia la comunicación serial.
Antulius 7:e8b0b94a5cdf 129 terminal.printf(" System is Wake Up!.\n\r");
Antulius 6:333a2763ad29 130
Antulius 7:e8b0b94a5cdf 131 /* Prueba del Buzzer */
Antulius 7:e8b0b94a5cdf 132 terminal.printf("Testing Buzzer... \n\r");
Antulius 7:e8b0b94a5cdf 133 buzzer = Buzz_On;
Antulius 7:e8b0b94a5cdf 134 wait_ms(750);
Antulius 7:e8b0b94a5cdf 135 buzzer = Buzz_Off;
Antulius 7:e8b0b94a5cdf 136 wait_ms(125);
Antulius 7:e8b0b94a5cdf 137 buzzer = Buzz_On;
Antulius 7:e8b0b94a5cdf 138 wait_ms(250);
Antulius 7:e8b0b94a5cdf 139 buzzer = Buzz_Off;
Antulius 7:e8b0b94a5cdf 140 wait_ms(125);
Antulius 7:e8b0b94a5cdf 141 buzzer = Buzz_On;
Antulius 7:e8b0b94a5cdf 142 wait_ms(500);
Antulius 7:e8b0b94a5cdf 143 buzzer = Buzz_Off;
Antulius 7:e8b0b94a5cdf 144
Antulius 7:e8b0b94a5cdf 145 while (true) // El Lazo del Programa principal está aquí !!!
Antulius 7:e8b0b94a5cdf 146 {
Antulius 7:e8b0b94a5cdf 147 I2C_Scanner();
Antulius 7:e8b0b94a5cdf 148 terminal.printf ("\n\rVolver a Diagnosticar?\n\r");
Antulius 7:e8b0b94a5cdf 149 getchar();
Antulius 7:e8b0b94a5cdf 150 }
Antulius 7:e8b0b94a5cdf 151 }
Antulius 7:e8b0b94a5cdf 152 /* END main */
Antulius 7:e8b0b94a5cdf 153
Antulius 7:e8b0b94a5cdf 154 /*
Antulius 7:e8b0b94a5cdf 155 ................................................................................
Antulius 7:e8b0b94a5cdf 156 : Rutinas de los Vectores de Interrupción
Antulius 7:e8b0b94a5cdf 157 ................................................................................
Antulius 7:e8b0b94a5cdf 158 */
Antulius 7:e8b0b94a5cdf 159 // Los Servicios a Interrupciones van aquí !
Antulius 7:e8b0b94a5cdf 160 /* END events */
Antulius 6:333a2763ad29 161 /*
Antulius 6:333a2763ad29 162 ________________________________________________________________________________
Antulius 6:333a2763ad29 163 |
Antulius 6:333a2763ad29 164 | Funciones Prototipo
Antulius 6:333a2763ad29 165 |_______________________________________________________________________________
Antulius 6:333a2763ad29 166 */
Antulius 6:333a2763ad29 167 // Las Funciones Prototipo van aquí !
Antulius 7:e8b0b94a5cdf 168 void I2C_Scanner()
Antulius 7:e8b0b94a5cdf 169 {
Antulius 7:e8b0b94a5cdf 170 terminal.printf ("I2C scanner. Scanning ...");
Antulius 7:e8b0b94a5cdf 171 uint8_t count = 0;
Antulius 7:e8b0b94a5cdf 172 // char test[] = {0x55,0xAA,0x0F,0xF0,0xFF,0x00};// Patrón de Prueba
Antulius 7:e8b0b94a5cdf 173
Antulius 7:e8b0b94a5cdf 174 char test[] = { 0b00000000, 0b00000000, // Datos en DB7=DB6=DB5=DB4=0, LED+=0, EN=0,RW=0,RS=0 // Patrón de Prueba LCD (MSN first)
Antulius 7:e8b0b94a5cdf 175 0b00111110, 0b00111010, // Datos en DB5=DB4=1, LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 176 0b00111110, 0b00111010, // Datos en DB5=DB4=1, LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 177 0b00111110, 0b00111010, // Datos en DB5=DB4=1, LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 178 0b00101110, 0b00100010, // Datos en DB5=1, LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 179 0b00101110, 0b00100010, // => Function Set Control: DB5=1, LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 180 0b10001110, 0b10001110, // => Function Set Control: DB7=N=1 2 líneas, DB6=F=0 5x7puntos, LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 181 0b00001110, 0b00000010, // => Display ON/OFF Control: DB7=DB6=DB5=DB4=0, LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 182 0b00101110, 0b00100010, // => Display ON/OFF Control: DB7=1 (Display off, cursor off, blink off),LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 183 0b00001110, 0b00000010, // => Display Clear: DB7=DB6=DB5=DB4=0, LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 184 0b00011110, 0b00010010, // => Display Clear: D4=1, LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 185 0b00001110, 0b00000010, // => Cursor Home: DB7=DB6=DB5=DB4=0, LED+=1, EN=1,0,RW=1,RS=0
Antulius 7:e8b0b94a5cdf 186 0b00101110, 0b00100010, // => Cursor Home: DB5=1, LED+=1, EN=1,0,RW=1,RS=0 , (Cursor Home};
Antulius 7:e8b0b94a5cdf 187 0b01001111, 0b00001011, // => Text 0x48: DB5=1, LED+=1, EN=1,0,RW=1,RS=1
Antulius 7:e8b0b94a5cdf 188 0b10001111, 0b00101011, // => Text "H" : DB7=1, LED+=1, EN=1,0,RW=1,RS=1 , (ASCII "H"}
Antulius 7:e8b0b94a5cdf 189 0b01101111, 0b01101011, // => Text 0x6F: DB5=1, LED+=1, EN=1,0,RW=1,RS=1
Antulius 7:e8b0b94a5cdf 190 0b11111111, 0b11111011, // => Text "o" : DB7=DB6=DB5=DB4=1, LED+=1, EN=1,0,RW=1,RS=1 , (ASCII "o"}
Antulius 7:e8b0b94a5cdf 191 0b01101111, 0b01101011, // => Text 0x6C: DB6=DB5=1, LED+=1, EN=1,0,RW=1,RS=1
Antulius 7:e8b0b94a5cdf 192 0b11001111, 0b11001011, // => Text "l" : DB7=DB6=1, LED+=1, EN=1,0,RW=1,RS=1 , (ASCII "l"}
Antulius 7:e8b0b94a5cdf 193 0b01101111, 0b01101011, // => Text 0x61: DB6=DB5=1, LED+=1, EN=1,0,RW=1,RS=1
Antulius 7:e8b0b94a5cdf 194 0b00011111, 0b00011011, // => Text "a" : DB4=1, LED+=1, EN=1,0,RW=1,RS=1 , (ASCII "a"}
Antulius 7:e8b0b94a5cdf 195 0b00101111, 0b00101011, // => Text 0x21: DB5=1, LED+=1, EN=1,0,RW=1,RS=1
Antulius 7:e8b0b94a5cdf 196 0b00011111, 0b00011011};// => Text "!" : DB4=1, LED+=1, EN=1,0,RW=1,RS=1 , (ASCII "!"}
Antulius 7:e8b0b94a5cdf 197 /*
Antulius 7:e8b0b94a5cdf 198 char test[] = { 0b00000000, 0b00000000, // RS=0,RW=1, EN=0, LED+=1, DB4=DB5=DB6=DB7=0 // Patrón de Prueba para LCD (LSN first)
Antulius 7:e8b0b94a5cdf 199 0b01111100, 0b01011100, // RS=0,RW=1, EN=1,0, LED+=1, DB5=DB4=1 en datos,
Antulius 7:e8b0b94a5cdf 200 0b01111100, 0b01011100, // RS=0,RW=1, EN=1,0, LED+=1, DB5=DB4=1 en datos,
Antulius 7:e8b0b94a5cdf 201 0b01111100, 0b01011100, // RS=0,RW=1, EN=1,0, LED+=1, DB5=DB4=1 en datos,
Antulius 7:e8b0b94a5cdf 202 0b01110100, 0b01010100, // RS=0,RW=1, EN=1,0, LED+=1, DB5=1 en datos,
Antulius 7:e8b0b94a5cdf 203 0b01100100, 0b00100100, // => Function Set Control: RS=0, RW=1, EN=1,0, LED+=1, DB5=1 en datos,
Antulius 7:e8b0b94a5cdf 204 0b01100110, 0b00100001, // => Function Set Control: RS=0, RW=1, EN=1,0, LED+=1, DB7=N=1 2 líneas, DB6=F=0 5x7puntos,
Antulius 7:e8b0b94a5cdf 205 0b01100000, 0b00100000, // => Display ON/OFF Control: RS=0, RW=1, EN=1,0, LED+=1, DB4=DB5=DB6=DB7=0 en datos,
Antulius 7:e8b0b94a5cdf 206 0b01100001, 0b00100001, // => Display ON/OFF Control: RS=0, RW=1, EN=1,0, LED+=1, DB7=1 (Display off, cursor off, blink off)
Antulius 7:e8b0b94a5cdf 207 0b01100000, 0b00100000, // => Display Clear: RS=0, RW=1, EN=1,0, LED+=1, DB4=DB5=DB6=DB7=0 en datos
Antulius 7:e8b0b94a5cdf 208 0b01101000, 0b00101000, // => Display Clear: RS=0, RW=1, EN=1,0, LED+=1, DB4=1 en datos, (Clear Diplay)
Antulius 7:e8b0b94a5cdf 209 0b01100000, 0b00100000, // => Cursor Home: RS=0, RW=1, EN=1,0, LED+=1, DB4=DB5=DB6=DB7=0 en datos
Antulius 7:e8b0b94a5cdf 210 0b01101000, 0b00101000, // => Cursor Home: RS=0, RW=1, EN=1,0, LED+=1, DB5=1 en datos, (Cursor Home)
Antulius 7:e8b0b94a5cdf 211 0b11110100, 0b11010100, // => Text 0x48: RS=1, RW=1, EN=1,0, LED+=1, DB5=1, (ASCII "H")
Antulius 7:e8b0b94a5cdf 212 0b11110001, 0b11010001, // => Text "H" : RS=1, RW=1, EN=1,0, LED+=1, DB7=1
Antulius 7:e8b0b94a5cdf 213 0b11110110, 0b11010110, // => Text 0x6F: RS=1, RW=1, EN=1,0, LED+=1, DB5=DB6=1, (ASCII "o")
Antulius 7:e8b0b94a5cdf 214 0b11111111, 0b11011111, // => Text "o" : RS=1, RW=1, EN=1,0, LED+=1, DB4=DB5=DB6=DB7=1
Antulius 7:e8b0b94a5cdf 215 0b11110110, 0b11010110, // => Text 0x6C: RS=1, RW=1, EN=1,0, LED+=1, DB5=DB6=1, (ASCII "l")
Antulius 7:e8b0b94a5cdf 216 0b11110011, 0b11010011, // => Text "l" : RS=1, RW=1, EN=1,0, LED+=1, DB6=DB7=1
Antulius 7:e8b0b94a5cdf 217 0b11110110, 0b11010110, // => Text 0x61: RS=1, RW=1, EN=1,0, LED+=1, DB5=DB6=1, (ASCII "a")
Antulius 7:e8b0b94a5cdf 218 0b11111000, 0b11011000, // => Text "a" : RS=1, RW=1, EN=1,0, LED+=1, DB4=1
Antulius 7:e8b0b94a5cdf 219 0b11110100, 0b11010100, // => Text 0x21: RS=1, RW=1, EN=1,0, LED+=1, DB5=1, (ASCII "!")
Antulius 7:e8b0b94a5cdf 220 0b11111000, 0b11011000};// => Text "!" : RS=1, RW=1, EN=1,0, LED+=1, DB4=1
Antulius 7:e8b0b94a5cdf 221 */
Antulius 7:e8b0b94a5cdf 222 i2c_wire.frequency(100000); // Frecuencia de operación para el I2C (100KHz)
Antulius 7:e8b0b94a5cdf 223 i2c_wire.start(); // Inicio de operación para el I2C
Antulius 7:e8b0b94a5cdf 224 for (int i = 8; i < 128; i++)
Antulius 7:e8b0b94a5cdf 225 {
Antulius 7:e8b0b94a5cdf 226 uint8_t acknoledge = i2c_wire.write (i,test,46,1); //(dirección, ap_datos, N°_datos, repetición de stop)
Antulius 7:e8b0b94a5cdf 227 if (acknoledge == 0)
Antulius 7:e8b0b94a5cdf 228 {
Antulius 7:e8b0b94a5cdf 229 terminal.printf ("\n\rFound address: ");
Antulius 7:e8b0b94a5cdf 230 terminal.printf ("%u DEC",i); // Valor de la dirección en Decimal
Antulius 7:e8b0b94a5cdf 231 terminal.printf (" (0x%x HEX)\n\r",i); // Valor de la dirección en Hexadecimal
Antulius 7:e8b0b94a5cdf 232 // terminal.printf (" (0x%hd HEX)\n\r",i); // Valor de la dirección en Hexadecimal
Antulius 7:e8b0b94a5cdf 233 count++;
Antulius 7:e8b0b94a5cdf 234 wait (1); // tal vez innecesario?
Antulius 7:e8b0b94a5cdf 235 } // end of good response
Antulius 7:e8b0b94a5cdf 236 led_monitor = !led_monitor; // Parapadeo del LED
Antulius 7:e8b0b94a5cdf 237 } // end of for loop
Antulius 7:e8b0b94a5cdf 238 led_monitor = 1; // Apaga el LED
Antulius 7:e8b0b94a5cdf 239 i2c_wire.stop(); // Fin de operación para el I2C
Antulius 7:e8b0b94a5cdf 240 terminal.printf ("\n\rDone.\n\r");
Antulius 7:e8b0b94a5cdf 241 terminal.printf ("Found %d Device(s)\n\r",count);
Antulius 7:e8b0b94a5cdf 242 } // end of setup
Antulius 7:e8b0b94a5cdf 243
Antulius 7:e8b0b94a5cdf 244 /* END functions */
Antulius 7:e8b0b94a5cdf 245
Antulius 7:e8b0b94a5cdf 246 /* END program */
Antulius 7:e8b0b94a5cdf 247
Antulius 7:e8b0b94a5cdf 248 /* END Mbed */