Перебор массива в обратном порядке

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

  1. b707

    b707 Гуру

    Думаете не в ту сторону.
    Тут я вам подскажу, потому что проблема у вас сейчас сложная, не для новичка.
    Дело в том, что когда вы передаете параметры в процедуру таким образом
    Код (C++):
    void ledOn (int numberPin, uint32_t paramPause, uint32_t timing)
    у вас внутри процедуры создаются временные копии переданных параметров.
    Когда вы внутри процедуры пытаетесь обновить параметр timing c помощью строки
    Код (C++):
    timing=millis();
    вы обновляете копию параметра, существующего только внутри процедуры. Когда работа в процедуре заканчивается и программа из нее выходит - временная копия параметра тайминга уничтожается и все ваши изменения пропадают.

    Чтобы изменения параметра внутри функции влияли на его внешнее значение, параметр нужно передавать не по значению, как у вас, а по ссылке. Делается это добавлением значка & после типа соответвующей переменной в заголовке функции, вот так:
    Код (C++):
    void ledOn (int numberPin, uint32_t paramPause, uint32_t& timing)
    Почитайте на досуге что-нибудь типа этого
    https://metanit.com/cpp/tutorial/3.3.php
     
  2. VitaliyGrim

    VitaliyGrim Нуб

    спасибо, почитаю.
     
  3. parovoZZ

    parovoZZ Гуру

    Обязательно. Будет понимание, как устроены MCU, CPU. Как что внутри вертится, считатется, адресуется. Булева алгебра - обязательна к изучению. Нет понимания, как строить машинные алгоритмы - в embedded программировании делать нечего.