Функция 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;
}
}
всегда четко пишите. в чем проблема, а не просто "не работает". Например - если компиляция с ошибкой - пишите текст ошибки.
Хотя я сразу выижу ошибку в вашем коде и могу просто указать на нее - но тогда вы ничему не научитесь. Почитайте правила оформления и вызова функций в языке Си - может сами догадаетесь?
А это чо?
bytewelcome_banner[] = {_H, _E, _L, _L, _O, _empty, _empty, _F, _E, _E, _L};а чо, так можно?а чо, так можно?Помню, из Правил поведения в студенческом лагере :
"В лагере можно делать ВСЕ!... что может позволить себе культурный и образованный человек."
Спасибо за ответ! Впредь буду более четче выражать свою проблему. Ошибку нашел и понял. Из-за невнимательности забыл поставить скобки после названия функции
Спасибо за ответ! Впредь буду более четче выражать свою проблему. Ошибку нашел и понял. Из-за невнимательности забыл поставить скобки после названия функции
И компилятор вам таки ничего не говорил?
Нет, все нормально было. Загружался без ошибок
А чего ему говорить? По мне так не должен. Ну, разве что скромный варнинг типа code has no effect.
Жаль, что 6-ую строку никто не заметил :(
Жаль, что 6-ую строку никто не заметил :(
Я заметил, сразу, потому и молчал :)))
А чего ему говорить? По мне так не должен. Ну, разве что скромный варнинг типа code has no effect.
Хм, действительно.((((