Функция void
- Войдите на сайт для отправки комментариев
Втр, 21/05/2019 - 18:20
Всем добрый день! Появилась проблема с функцией void LED_DISPLAY() , не могу понять в чем проблема. Если вместо названия этой функции поставить её тело в void loop(), то все прекрасно работает.
int Pin = 3; #define CLK 3 #define DIO 2 #include "GyverTM1637.h" GyverTM1637 disp(CLK, DIO); void setup() { // put your setup code here, to run once: pinMode(A1, INPUT_PULLUP); // Кнопка "Следуюший трек" (на выходе по умолчанию 1 из-за подтягивающего резистора) pinMode(A2, INPUT_PULLUP); // Кнопка "Предыдущий трек" (на выходе по умолчанию 1 из-за подтягивающего резистора) Serial.begin(9600); disp.clear(); disp.brightness(7); // яркость, 0 - 7 (минимум - максимум) //------------------------------ПРИВЕТСТВИЕ------------------------------------------------------------ byte troll[4] = {_0, _0, _0, _0}; disp.twistByte(troll, 50); disp.clear(); disp.twistByte(troll, 50); byte welcome_banner[] = {_H, _E, _L, _L, _O, _empty, _empty, _F, _E, _E, _L}; disp.runningString(welcome_banner, sizeof(welcome_banner), 200); // 200 это время в миллисекундах! disp.clear(); //------------------------------ПРИВЕТСТВИЕ------------------------------------------------------------ } void loop() { if(!digitalRead(A1) == 1) { if(Pin >= 3 && Pin < 13){ Pin++; delay(300); // millis() не подходит, так как идет задержка на считывания с пинов ADAFRUIT SOUND BOARD. СМ. скетч may09a, там выполнена millis() } } if(!digitalRead(A2) == 1){ if(Pin > 3 && Pin <= 13) { Pin--; delay(300); } } LED_DISPLAY; Serial.println(Pin); } void LED_DISPLAY() { switch(Pin) { case 3: disp.display(3, 3, 3, 3); break; case 4: disp.display(4, 4, 4, 4); break; case 5: disp.display(5, 5, 5, 5); break; } }
всегда четко пишите. в чем проблема, а не просто "не работает". Например - если компиляция с ошибкой - пишите текст ошибки.
Хотя я сразу выижу ошибку в вашем коде и могу просто указать на нее - но тогда вы ничему не научитесь. Почитайте правила оформления и вызова функций в языке Си - может сами догадаетесь?
А это чо?
byte
welcome_banner[] = {_H, _E, _L, _L, _O, _empty, _empty, _F, _E, _E, _L};
а чо, так можно?
а чо, так можно?
Помню, из Правил поведения в студенческом лагере :
"В лагере можно делать ВСЕ!... что может позволить себе культурный и образованный человек."
Спасибо за ответ! Впредь буду более четче выражать свою проблему. Ошибку нашел и понял. Из-за невнимательности забыл поставить скобки после названия функции
Спасибо за ответ! Впредь буду более четче выражать свою проблему. Ошибку нашел и понял. Из-за невнимательности забыл поставить скобки после названия функции
И компилятор вам таки ничего не говорил?
Нет, все нормально было. Загружался без ошибок
А чего ему говорить? По мне так не должен. Ну, разве что скромный варнинг типа code has no effect.
Жаль, что 6-ую строку никто не заметил :(
Жаль, что 6-ую строку никто не заметил :(
Я заметил, сразу, потому и молчал :)))
А чего ему говорить? По мне так не должен. Ну, разве что скромный варнинг типа code has no effect.
Хм, действительно.((((