TM1637
- Войдите на сайт для отправки комментариев
Втр, 03/12/2019 - 06:49
Задолбался исправлять косяки в библиотеках для TM1637 разной степени кривоватости
Написал себе свою, еще более прецказуемую.
нужна камунить с такими методами?
public:
// канструктор. Принимает 2 пина (обязательно) и тип дисплея (необязательно)
// AClockPin - номер пина для тактирования (вывод CLK на дисплейчике)
// ADataPin - номер пина для данных (вывод DAT на дисплейчике)
// ADisplayType - тип дисплея, для чисел или для времени (с точками/двоеточием)
// по умолчанию - выбран дисплей с двоеточием (для времени)
//
TM1637(uint8_t AClockPin, uint8_t ADataPin, enTM1637Type ADisplayType = enTM1637Type::Time);
// печатает строку
//
void Print(const char *AString);
// печатает двухбайтовое целое число со знаком
// по основанию ARadix (по умолчанию 10)
// число выравнивается вправо
// печатается не более NUM_DIGITS начальных цыфр числа, включая знак
//
void Print(const int ANumber, const uint8_t ARadix = 10);
// печать дробных чисел со знаком.
// Если число длинное - печатаются первые NUM_DIGITS символов
// Если индекс точки находится в пределах 0 - NUM_DIGITS то она тоже печатается
//
void Print(const double AValue);
// для удобства печати времени, передаёшь часы/минуты, печатает
// на своих местах, слева и справа от двоеточия
//
void PrintTime(const uint8_t AHours, const uint8_t AMinutes);
// для удобства. Передаешь число (со знаком) - печатает его и символ градуса за ним
//
void PrintDeg(const int8_t ADegrees);
// очистка дисплея
//
void Clear(void);
// устанавливает яркость дисплея от 0 до 7. 7 - самый яркий.
//
void SetBrightness(const uint8_t AValue);
// включает/выключает показ десятичной точки/двоеточия
//
void ShowPoint(const bool APointVisible);
// переключает точку. если была включена - выключает и наоборот
// удобно мигать двоеточием в часах, не надо самому запоминать состояние
//
void ToggleColon(void) {
if (FDisplayType == enTM1637Type::Time);
// вывод символа в определенную позицию
// APosition - в какой позиции печатать 0..NUM_DIGITS-1
// ASymbol - символ, который надо напечатать
// символ сразу же перекодируется и выводится
// ничего больше вызывать не надо
//
void PrintAt(const uint8_t APosition, const char ASymbol);
// аналогично Print(const char *AString)
// только оператором, чтоб можно было писать
// tm1637<<"Err2";
//
const TM1637 &operator <<(const char *AString);
};
Написал себе свою, еще более прецказуемую.
Ашыпся, читать: "еще более непрецказуемую."
А во встроенной либе, какие ещё есть косяки, окромя зависания при вызове display с параметром byte ?
а встроенная - это какая? У мня не было встроенной, я с Гита их штук шесть перепробовал, по убыванию звёзд.
А. Еще горизонтальный скроллинг хачю приделать, чтоб бегущие строки выводить.
нужна камунить с такими методами?
да
https://github.com/DetSimen/TM1637
Со скролингом строки есть два пути(падецки и непадецки) , третий ничего не делать. Пацецки это скролинг показ. Объявить размеры экрана и программно скролинг паказывать. Но даже это дополнение будет сложно для ардуино дебилов.
Могу бесплатно ускорить в три раза.