Например TDA7294

Форум РадиоКот • Просмотр темы - Не могу считать значение из массива в FLASH памяти
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 23, 2024 09:43:02

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Не могу считать значение из массива в FLASH памяти
СообщениеДобавлено: Чт янв 20, 2022 18:06:10 
Первый раз сказал Мяу!

Зарегистрирован: Чт фев 21, 2013 20:31:33
Сообщений: 33
Рейтинг сообщения: 0
При измерении напряжения на терморезисторе вольтметром на Atmega8 записал в флешь память с применением PROGMEM два массива (напряжения и температуры) соответствующими парами.
Включил #include <pgmspace.h>
После считывания результата измерения в прерывании АЦП в регистр привожу код
Код:
 while(1)
{
    if (ACSR&(1<<5))     Для поддержания температуры на заданном
    {PORTC|=(1<<4); }   
   else
   { PORTC&=~(1<<4); }    значении
   if(adc_counter==64)  // Если количество измерений равно 60
      {
       adc_buffer1=adc_buffer;
       display1=adc_buffer1/10;
       ADCSRA |=(1<<ADEN)|(1<<ADSC); //запуск АЦП
       adc_counter=0;  adc_buffer= 0; //Обнуляем счетчик измерений
       }
          }
  ADCSRA |=(1<<ADEN)|(1<<ADSC);
 // while(adc_buffer1 <pgm_read_word(NAPR[0]))
     k = pgm_read_byte(TEMP[0]);
  }

Пытаюсь прочесть TEMP[0]- наименьшее значение в массиве температур.
Массив температур определён как " char PROGMEM TEMP[]"
Получаю "0". В чём дело?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не могу считать значение из массива в FLASH памяти
СообщениеДобавлено: Сб янв 22, 2022 03:41:05 
Это не хвост, это антенна

Карма: 15
Рейтинг сообщений: 177
Зарегистрирован: Пт дек 10, 2021 12:48:46
Сообщений: 1326
Откуда: Тюмень
Рейтинг сообщения: 0
Даже я не зная языка Си, скорее всего не ошибусь сказав, что АЦП не настроено должным образом… ну и самого чтения АЦП не наблюдается… :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Не могу считать значение из массива в FLASH памяти
СообщениеДобавлено: Чт янв 27, 2022 17:52:27 
Потрогал лапой паяльник
Аватар пользователя

Карма: -14
Рейтинг сообщений: -43
Зарегистрирован: Ср дек 30, 2020 23:05:29
Сообщений: 340
Рейтинг сообщения: 0
А как вы узнаёте что получаете "0", у вас в коде нет printf("%d\n", k);.
Вы говорите что записали во флеш массив значений, а вы проверили после записи эти значения?
Вы уверены что флеш доступна для чтения когда вы её читаете?

А с чтением АЦП я так понял это следующий вопрос.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Не могу считать значение из массива в FLASH памяти
СообщениеДобавлено: Чт фев 03, 2022 17:06:57 
Первый раз сказал Мяу!

Зарегистрирован: Чт фев 21, 2013 20:31:33
Сообщений: 33
Рейтинг сообщения: 0
[uquote="ddr4",url="/forum/viewtopic.php?p=4169272#p4169272"]А как вы узнаёте что получаете "0", у вас в коде нет printf("%d\n", k);.
Я специально и ввожу переменную "к" и в протеусе в переменных вижу её значение "0".
с настройках АЦП тоже всё в порядке, АЦП читается и результат его виден по величинам adc_buffer в том же протеусе.
Ошибка была, видимо, в наличии промежутка после "if".
А "к" не читалась, т.к. в выражении
Код:
k = pgm_read_byte(TEMP[0]);

надо было указать принадлежность к адресу
Код:
k = pgm_read_byte(&TEMP[0]);

Теперь другие вопросы, но о них попозже. Надеюсь разобраться сам.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Аурита и гости: 32


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y