Почему включается реле?

Тема в разделе "Arduino & Shields", создана пользователем jtag, 3 мар 2019.

  1. jtag

    jtag Нерд

    Немогу понять по какой причине срабатывает реле, которое вообще никак не относится. Если раскомментирую строку "strcat(card, buf)", прошью - реле срабатывает, закоментирую тогда не срабатывает.
    Код (C++):
                    char buf[30];
                    const char card[20] = "mode=out&number=";
                    sprintf(buf, "%06lu", tag);
    //              strcat(card, buf);
                    ether.hisport = 9000;
    //              ether.browseUrl(PSTR("/?"), card, website, callback_2);
    ,

    и еще подскажите как можно правильным путем соединить строку "mode=out&number=" с числом unsigned long для ether.browser?
     
  2. jtag

    jtag Нерд

    Даже костыль написал, добавил строку digitalWrite(LED_PASS_1, HIGH); перед strcat(card, buf), теперь не срабатывает, но я понял чем дело, провод с антены проходил мимо сигнального провода реле, помехи были
     
  3. Нет. Антенна реле активировать не может, там нету даже близко такой энергии. У вас ошибка в коде, но не в приведенном отрывке.
     
  4. Для const char card отвели в стеке 20 байт и инициализировали строкой "mode=out&number=" длиной в 16 байт, заполняете buf в sprintf(buf, "%06lu", tag) представлением числа шести разрядного, с лидирующими нулями, т.о. в buf строка из 6-ти символов, в strcat(card, buf) конкатенируете (складываете) строки в 16 и 6 символов, в результате в card должна оказаться строка в 22 байта, пробиваете стек однако, но как компилятор пропускает strcat для конст чара, загадка, у стркат-а сигнатура другая,
    char * strcat( char * destptr, const char * srcptr ) ;
     
    Tomasina нравится это.
  5. Asper Daffy

    Asper Daffy Иксперд

    Почему не в приведённом? Распашка памяти в полный рост! Там что угодно может сработать.

    Нет никакой загадки, это уровень предупреждения, а на предупреждения уважающий себя ардуинщик плюёт и даже не читает их. Более того, в ардуино IDE из коробки печать предупреждение просто подавлена начисто, так что анонимус их даже не видит.
     
    Последнее редактирование модератором: 3 мар 2019
    KindMan и parovoZZ нравится это.
  6. Цель ясна, популяризировать ардуину, как игрушку доступную каждому, печально...
    Порой встречаются вопросы на которые хочется сказать "Зачем вы этот код написали?".
     
    Daniil и parovoZZ нравится это.
  7. не заметил, извините