• После сброса не загорается первый светодиод, почему?

    DuMOHsmol
    @DuMOHsmol
    void loop(){
    for(c=0; c<sizeof(led); c++){
    on(led[c]);
    delay(1000);
    }


    Дело вот в этом участке кода. Когда вызывается прерывание, главный цикл loop останавливается, а затем продолжается с того момента, где он остановился. С очень большой вероятностью цикл будет прерван в моменте delay(1000), соответственно, переменная "c" станет нулем именно в этом участке. А затем, после выполнения задержки, сразу сработает увеличение на единицу и получится, что первый светодиод не будет зажжён.
    Ответ написан
    1 комментарий