помогите разобраться с EEPROM
- Войдите на сайт для отправки комментариев
Чт, 22/10/2015 - 13:32
Помогите решить проблему
программа определяет минимальные значения аналогового датчика, эти данные записываются в EEPROM. в следующем цикле считывания должны записаться другие минимальные показания, но если они больше предыдущих, EEPROM видит только предыдущие, но если меньше предыдущих он их записывает, а нужны текущие после каждого считывания. Вот такой кусочек скэтча:
void tune(){ digitalWrite(led1, HIGH); stepper.setSpeed(20); stepper.step(-5); swr = analogRead(swrPin) /4; swr= map(swr, 0, 1023, 0, 630); swr = constrain(swr, 0, 1023); if (swr < swrMin) { swrMin = swr; } EEPROM.write(addr, swrMin); { lcd.print(" Scan all Bands"); lcd.setCursor(0,1); lcd.print("-SWR- "); lcd.print(swr); lcd.print(" -SWR- "); } }
Используй симулятор Atmel Studio 7 или протеус и все вопросы отпадут
считывание восстанавливается после выключения и вклчения снова АРДУИНО. Такое впечатление, что где-то мин. показания записываются и хранятся в оперативной памяти и оперативка не даёт записывать другие показания.
Весь скетч показывай. В этом куске вообще чтения из EEPROM нет. И осиль уже Ctrl+T, а то от такого форматирования кода глаза вытекают.
Весь скетч показывай. В этом куске вообще чтения из EEPROM нет. И осиль уже Ctrl+T, а то от такого форматирования кода глаза вытекают.
это реально спасёт твои глаза.
Спасибо за ответ
Я обнаружил. что EEPROM там не нужен, можно считывать через ОЗУ и ОЗУ держит минимальные показания, при каждом новом запуске считывания записываются показания меньше меньшего, а нужно обнулять озу в конце второй функции и при каждом запуске записывать на чистый лист новые показания датчика- swrMin. Теперь не знаю как обнулять ОЗУ, какие применяют команды, не могу нигде найти. Показываю скэтч:
ответ послал
ОЗУ не обнуляют, обнуляют переменные: а = 0;
дело в том. что программа смотрит на ноль как на наилучшее показания датчика и не хочет ничего другого записывать
дело в том. что программа смотрит на ноль как на наилучшее показания датчика и не хочет ничего другого записывать
Тогда наоборот, максимально недостижимое.
О! Я так и сделал, всё заработало, спасибо за участие.