/* Objectifs du programme
   Mesurer le temps logiciel pour rafraichir un écran LCD
   A l'aide d'un analyseur logique mesurer le temps matériel de la liaison I2C
   Comparer ces 2 temps.
   Comment justifier que le premier temps affiché est plus court ?
   Conclure et comparer avec la liaison UART
 */
 
#include <Wire.h>  
#include <LiquidCrystal_I2C.h> // Using version 1.2.1
 
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Autre adresse utilisée en J101 Adresse : 0x3F

unsigned long t0,dt=0;

void setup()
{
  lcd.begin(16,2); // 16 colonnes 2 lignes
  lcd.print("Mesure temps"); // Débute par défaut Colonne 0 Ligne 0
}
 
void loop()
{
  t0=micros();         // top départ chrono
  lcd.setCursor(1,1);  // Colonne 5 Ligne 1 
  lcd.print("dt=");
  lcd.print(dt);       // affiche le temps d’exécution des lcd.print 
  lcd.print(" us   "); // affiche la variable T  
  dt=micros()-t0;      // durée logicielle d’exécution 
   
  delay(1000);        // rafraichissement toutes les secondes
}