Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Инженерный раздел > Микроконтроллеры, робототехника, схемотехника, 3D принтеры
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 02.08.2019, 16:01   #1
ilya909
Новичок
 
Регистрация: 02.08.2019
Сообщений: 2
Репутация: 10
По умолчанию STM32F407 и огромный массив в отдельном файле

Доброго дня форумчане, нужна помощь по написанию части кода
Есть микроконтроллер STM32F407 с 192КБ ОЗУ
Есть SD карта с записанным файлом с массивом внутри оного
Часть кода я смог написать а вот по другой части у меня ступор - нужно чтобы из файла через определенный интервал считывался элемент массива n и выбрасывался по порту наружу

файл выглядит так(сократил)

Код:
uint32_t wData_size=5532923;
unsigned char wData[] = 
{0x73,0x81,0x94,0x64,0x85,0x94,0x5e,0x84,0x8a,0x7a,0x72,0x72,0x8e,0x5e,0x6e,
0x91,0x57,0x6c,0x79,0x65,0x63,0x5d,0x80,0x5c,0x55,0x82,0x4d,0x56,0x72,0x61,
0x5f,0x51,0x75,0x5d,0x48,0x7f,0x4e,0x4a,0x74,0x64,0x6a,0x5d,0x7f,0x76,0x51,
0x84,0x68,0x4f,0x75,0x68,0x6a,0x56,0x69,0x75,0x49,0x7a,0x74,0x54,0x77,0x70,
0x74,0x67,0x77,0x8f,0x5f,0x84,0x99,0x66,0x7f,0x7d,0x7b,0x70,0x70,0x91,0x66,
0x7a,0x99,0x70,0x81,0x82,0x8a,0x8a,0x84,0xb0,0x91,0x8d,0xba,0x88,0x83,0x90,
...........................................................................
0x72,0x87,0x83,0x74,0x87,0x7b,0x8c,0x8d,0x7f,0x89,0x71,0x82,0x89,0x77,0x85};
wData_size - это колво элементов массива, то есть это число нужно запихнуть в счетчик цикла, размеры файла не позволяют его полностью загрузить в ОЗУ контроллера так как это обычно 250-600 Мб которые хранятся на карте памяти что подключается к контроллеру

считывание должно выглядеть так: берется 1-й элемент массива, сосчитался в буфер(пусть будет masBuff), дальше содержимое буфера отправляется наружу через
GPIOB->ODR = masBuff, затем проходит некоторое время - 8 мс и считывается 2-й элемент массива и выбрасывается наружу через буфер и так до конца массива

Помогите с написанием кода, пробовал шаманство через fgetc, lseek но Keil на такое реагирует страшным матом при компиляции

я примерно так это представляю
Код:
if(f_open(&MyFile, "wdata.txt", FA_READ) != FR_OK)
{
   Error_Handler();
}
else
{
   //здесь счетчик
   size = //тут должно быть число из файла из строки uint32_t wData_size
   for(d<size;d++)
   {
      //тут как-то считывается элемент и пишется в masBuff
      GPIOB->ODR = masBuff;
      delay_ms(8);
   }
   f_close(&MyFile)
}

Последний раз редактировалось ilya909; 02.08.2019 в 16:10. Причина: дописал код, как примерно его представляю
ilya909 вне форума   Ответить с цитированием
Старый 02.08.2019, 16:41   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,681
Репутация: 2631
По умолчанию

Генерите бинарный файл, счетчик определяется размер_файла/размер элемента и т.д.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 02.08.2019, 17:50   #3
Cuprum5
Участник клуба
 
Регистрация: 09.05.2017
Сообщений: 523
Репутация: 104
По умолчанию

Цитата:
Сообщение от ilya909 Посмотреть сообщение
Код:
for(d<size;d++)
- а где инициализация d?
Cuprum5 вне форума   Ответить с цитированием
Старый 02.08.2019, 18:03   #4
ilya909
Новичок
 
Регистрация: 02.08.2019
Сообщений: 2
Репутация: 10
По умолчанию

d инициализировал выше, просто в фрагменте кода не показано, щас пробую вариант который посоветовал товарищ р51х хотя там тоже заморочки(я сам виноват что мало знаю)
ilya909 вне форума   Ответить с цитированием
Старый 02.08.2019, 19:23   #5
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,267
Репутация: 646

icq: 359393755
По умолчанию

не понял а в чем проблема то??
Сделали таймер и по прерыванию читаете символ с вашей карты и кидаете куда хотите. и причем тут fgetc ... у вас же SPI протокол.
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster вне форума   Ответить с цитированием
Старый 02.08.2019, 20:41   #6
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,681
Репутация: 2631
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
причем тут fgetc ... у вас же SPI протокол.
Когда SPI научился читать файлы с sd-карты?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 02.08.2019, 22:03   #7
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,267
Репутация: 646

icq: 359393755
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Когда SPI научился читать файлы с sd-карты?
Ничего не понимаю. Это протокол взаимодействия с картами. может конечно в кеил и реализована fgets через спи но .. а как же файловая система карты. Или мы о разных вещах говорим?
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster вне форума   Ответить с цитированием
Старый 02.08.2019, 23:27   #8
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,681
Репутация: 2631
По умолчанию

http://www.keil.com/support/man/docs...fs_flashfs.htm
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перечисление в отдельном заголовочном файле Базиля Помощь студентам 5 20.02.2014 14:30
Сохранение введённых данных в отдельном файле mephistophel Общие вопросы по Java, Java SE, Kotlin 1 04.05.2012 00:36
шаблон в отдельном файле Форсировка PHP 4 02.01.2011 22:56
сохранение листа Excel в отдельном файле mmzzmm Microsoft Office Excel 2 07.10.2010 15:51
Как создать огромный массив? fatesmile Общие вопросы Delphi 17 18.01.2010 15:19


11:08.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.