Проверю чуть позже. А как в WriteEEPROM_Byte(0, SetPower); записать SetPower более 255?
Проверю чуть позже. А как в WriteEEPROM_Byte(0, SetPower); записать SetPower более 255?
SetPower более 255?
Важен какой максимум
Если не больше 65535 то:
Код:Сохранить значение 4000 в EEPROM по адресу 0 тип Word WriteEEPROM_Word(0, 4000); Прочитать из EEPROM с адреса 0 значение типа Word uint16_t tmp=ReadEEPROM_Word(0);
И нужно иметь ввиду при адресации, что в памяти занимает 2 байта
Последний раз редактировалось Chip; 13.03.2018 в 00:42.
Не хочет прочитать из EEPROM
Прежде чем прочитать, сначала нужно записать или я что то не допонимаю?
Последний раз редактировалось Chip; 13.03.2018 в 01:05.
: ) Так то да. Проверил Serial.println(SetPower); - читает, но почему то на экран пишет 0. u8g.print(SetPower);
P.S. Не понял что и сделал, но заработало. Видимо пора в люлю. Оказалось просто сделать, а в инете читал там число надо на части разбить - записать - потом опять собирать. Ни чего не понял, а что понял то не заработало - EEPROM.put и EEPROM.get,
Последний раз редактировалось Kevin; 13.03.2018 в 01:10.
А мой код работает?
Ещё не проверял. Сейчас проверю - дополню
Да работает - сохраняет, только регулировку надо переделать - поменять местами + с минусом. Я у себя переделал. А то по часовой стрелке убавляется яркость, и наоборот.
Последний раз редактировалось Kevin; 13.03.2018 в 01:33.
что именно переделал? Я вроде на сериал мониторе смотрел, все работало как положено
Ты в сериал мониторе что видел? Прибавлялись значения при вращении энкодера по часовой и уменьшались против часовой? А диммер "тухнет" при 255
PHP код:
void encoderTick() // Обратка прерываний от Энкодера
{
uint8_t DT_now = digitalRead(CLK); // считываем текущее положение CLK
if (DT_now != DT_last) // если предыдущее и текущее положение CLK не равны, значит был поворот
{
if (digitalRead(DT) != DT_now) // если DT не равен CLK, значит вращение по часовой стрелке
{
if( dimmer < Max ) dimmer--; // прибавить яркость тут минус
} else { // если DT равен CLK, значит вращение против часовой
if( dimmer > Min ) dimmer++; // убавить яркость а тут плюс
}
}
DT_last = DT_now; // сохранить положение CLK для следующей проверки
}
Последний раз редактировалось Kevin; 13.03.2018 в 01:44.
Кручу по часовой и значения уменьшаются , кручу против увеличиваются
Скорее всего у тебя диммер по другому подклюбчен, местами clk, dt перевернуты
Последний раз редактировалось Chip; 13.03.2018 в 02:01.
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)