Go Down

Topic: LCD et RTC (Read 107 times) previous topic - next topic

melih67

Bonjour , j'ai le programme suivant
Code: [Select]
#include <Wire.h>
#include "DS1307.h"
#include "rgb_lcd.h"

rgb_lcd lcd;
DS1307 clock;
void setup()
{
    Serial.begin(9600);
    clock.begin();
    clock.fillByHMS(16,30,00);
    clock.setTime();
}
void loop()
{
    printTime();
    lcd.setCursor(0,0);
    lcd.print("depart du train");
    lcd.setCursor(0,1);
    lcd.print("16h31   ");
    delay(60000);
    lcd.setCursor(0,0);
    lcd.print("arivee du train ");
    lcd.setCursor(0,1);
    lcd.print("16h33   ");
    delay(120000);
    lcd.setCursor(0,0);
    lcd.print("train en gare ");
    delay(60000);
    lcd.setCursor(0,0);
    lcd.print("arivee du train ");
    lcd.setCursor(0,1);
    lcd.print("16h36   ");
    delay(5000);
}

void printTime()
{
   
    lcd.setCursor(8,1);
    clock.getTime();
    lcd.print(clock.hour, DEC);
    lcd.print(":");   
    lcd.print(clock.minute, DEC);
    lcd.print(":");
    lcd.print(clock.second, DEC);
    lcd.print("  ");   
    delay(1000);

}


J'affiche les informations nécessaires dans une gare et également l'heure. Mais celui-ci ne se lance qu'après avoir lu tout ce qui le précède.
Ma question est la suivante : comment faire pour que l'heure s'active tout de suite après avoir téléverser le programme et non par la suite? merci

dfgh

hello
une fois que ton programme est téléversé, il lui faut un certain temps pour démarrer.
dès qu'il à effectivement démarré, il affiche l'heure en premier.
c'est la première instruction de la boucle loop.
tu ne peux pas l'avoir plus vite ou en le mettant dans le setup, mais pour gagner quelques nano secondes...

hbachetti

D'autre part le bootloader met un certain temps à s'exécuter. Il se met en attente sur la ligne série un certain temps, puis lance l'application si rien ne se produit.
Une solution : se passer de bootloader.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Go Up