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
Со скролингом строки есть два пути(падецки и непадецки) , третий ничего не делать. Пацецки это скролинг показ. Объявить размеры экрана и программно скролинг паказывать. Но даже это дополнение будет сложно для ардуино дебилов.
Могу бесплатно ускорить в три раза.