Доброго времени суток! Имею код ниже. Программа должна выводить цифры нажатые клавиатурой. После того как место на дисплее заканчивается (counter), то дисплей должен очиститься. Я использую clear, но ничего не происходит. Она работает лишь только в ф-ф setup. Варианты решений?
C++:
#define CLK 11
#define DIO 12
#include <GyverTM1637.h>
#include <Keypad.h>
const byte ROWS = 5;
const byte COLS = 4;
/*
char Keys[ROWS][COLS] = {
{'F', 'f', '#', '*'},
{'1', '2', '3', 'U'},
{'4', '5', '6', 'D'},
{'7', '8', '9', 'e'},
{'L', '0', 'R', 'E'}
};
*/
uint8_t Keys[ROWS][COLS] = {
{0x0, 0x0, 0x0, 0x0},
{_1, _2, _3, 0x0},
{_4, _5, _6, 0x0},
{_7, _8, _9, 0x0},
{0x0, _0, 0x0, 0x0}
};
byte rowPins[ROWS] = {10,9,8,7,6};
byte colPins[COLS] = {2,3,4,5};
Keypad customKeypad = Keypad(makeKeymap(Keys), rowPins, colPins, ROWS, COLS);
GyverTM1637 disp(CLK, DIO);
int counter = 0;
uint8_t numbers[4] = {_empty, _empty, _empty, _empty};
void Print(uint8_t button) {
if (counter == 4){
counter = 0;
disp.clear(); // Увы, не работает......
}
if (counter != 4){
numbers[counter] = button;
++counter;
}
disp.displayByte(numbers);
delay(100);
}
void setup() {
Serial.begin(9600);
disp.clear();
disp.brightness(7);
}
void loop() {
byte customKey = customKeypad.getKey();
if (customKey){
Print(customKey);
}
delay(3);
}