Помогите с кодом

Тема в разделе "Arduino & Shields", создана пользователем Sikiro, 15 авг 2015.

  1. Sikiro

    Sikiro Нуб

    Скажите пожалуйста как сделать код.
    часы и минуты, как сделать если минут больше "60", то сбрасывалось на ноль...
    То есть в моем случае отображается - 1h 61m
    А хочется так - 1h 1 m
    Код (Text):

      GLCD.CursorTo(3, 1); //перемещаем курсор на стройку с отчетом времени минута
      GLCD.print(millis()/60000); //печатаем время в минутах
      GLCD.CursorTo(5, 1);
      GLCD.print("m");
      GLCD.CursorTo(1, 1); //перемещаем курсор на стройку с отчетом времени час
      GLCD.print(millis()/3600000); //печатаем время в часах
      GLCD.CursorTo(2, 1);
      GLCD.print("h");

     
     
    Последнее редактирование: 15 авг 2015
  2. vvr

    vvr Инженерище

  3. Tomasina

    Tomasina Сушитель лампочек Модератор

    Код (Text):

      unsigned int mm = millis()/60000;
      unsigned int hh = millis()/3600000;
      while(mm>60) mm=-60; //обрезаем минуты, если значение больше 60
      while(hh>60) hh=-60;
      GLCD.CursorTo(3, 1); //перемещаем курсор на стройку с отчетом времени минута
      GLCD.print(mm); //печатаем время в минутах
      GLCD.CursorTo(5, 1);
      GLCD.print("m");
      GLCD.CursorTo(1, 1); //перемещаем курсор на стройку с отчетом времени час
      GLCD.print(hh); //печатаем время в часах
      GLCD.CursorTo(2, 1);
      GLCD.print("h");
     
  4. DrProg

    DrProg Вечный нерд

    Так вы просто потеряете эту минуту.
     
  5. Sikiro

    Sikiro Нуб

    ага, минуты стоят на нуле...
     
  6. Sikiro

    Sikiro Нуб

    всем спасибо, проблему решил так... еще и модифицировал, добавил нолики)
    Код (Text):
    unsigned long ontime = 86397000;


    void setup()
    {
        GLCD.Init();
      GLCD.ClearScreen();
    }
    String time()
    {
      byte ss = ((millis()+ontime)/1000UL)%60;
      byte mm  = (((millis()+ontime)/1000UL)/60UL)%60;
      byte hh  = (((millis()+ontime)/1000UL)/3600UL)%24;
    String result = "";
    if(hh < 10) result += '0';
    result += String(hh) + ':';
    if(mm < 10) result += '0';
    result += String(mm) + ':';
    if(ss < 10) result += '0';
    result += String(ss);

    return result;
    }

    void loop()
    {

      GLCD.CursorTo(1, 1); //перемещаем курсор на стройку с отчетом времени
      GLCD.print(time()); //печатаем время
    }