Ntc термистор измерение температуры

Тема в разделе "Микроконтроллеры AVR", создана пользователем Yerabdi, 25 дек 2021.

  1. parovoZZ

    parovoZZ Гуру

    С этим какие-то проблемы?
     
  2. Valer5

    Valer5 Нуб

    Спасибо, akl. Извините за надоедливость, но больше не к кому обратиться.
    Вообще то до поиска в таблице я ещё не добрался. Встретился с трудностью чтения из flash памяти.
    В разделе while(1) после вычисления результата 64 измерений напряжения по буферу расчётов пытался найти ближайшее большее значение напряжения из массива напряжений и по нему выбрать температуру из своего массива. Мне это не удалось. Попытался просто прочитать значение 0 члена массива. k = pgm_read_byte(TEMP[0]);
    Получил 0. Массив определён как char PROGMEM TEMP[]= с введёнными значениями. Включил #include <pgmspace.h>.
    Я пытаюсь учится писать на языке Си и пользуюсь компилятором CvAVR.
    Не подскажете, в чём дело? Спасибо.
     
  3. akl

    akl Гуру

    посмотри вот тут примеры https://alexgyver.ru/lessons/progmem/
    а еще прогмем должен быть
    const char PROGMEM TEMP[]
    может в этом дело. хотя тогда бы не скомпилировалось вообще наверно.
    ну и выложи код как там че читается. желательно без всего лишнего

    но вообще если эта хрень с массивом делается ради ускорения, то использование прогмем сведет все ускорение на нет, и преимущества перед вычислением по формуле может не быть
     
  4. Valer5

    Valer5 Нуб

    Спасибо, akl.
    Как всегда, невнимательность. Забыл в PROGMEM TEMP[] поставить & в качестве обозначения адреса. Должно быть PROGMEM (&TEMP[]). Так всё работает.
    Скорость меня не очень волнует, т.к. система регулирует температуру нагрева воды и система довольно инерционная, включая и термосопротивление. Ещё раз спасибо.