Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 09.03.2017, 13:19  
OakRidge
Почётный гражданин KAZUS.RU
 
Аватар для OakRidge
 
Регистрация: 16.05.2015
Адрес: Болгария
Сообщений: 1,462
Сказал спасибо: 287
Сказали Спасибо 1,121 раз(а) в 540 сообщении(ях)
OakRidge на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

синус 10 бит, копи, пейст
Вложения:
Тип файла: rar SIN_FI.rar (8.4 Кб, 0 просмотров)
Реклама:
OakRidge вне форума  
Эти 2 пользователя(ей) сказали Спасибо OakRidge за это сообщение:
JonRembo (09.03.2017), nml (17.04.2017)
Непрочитано 09.03.2017, 17:29  
Dmitry_
Временная регистрация
 
Аватар для Dmitry_
 
Регистрация: 25.11.2016
Адрес: Ох и где я только не проживал...
Сообщений: 80
Сказал спасибо: 87
Сказали Спасибо 174 раз(а) в 40 сообщении(ях)
Dmitry_ на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Вообще компилятор для констант автоматически выполняет вычисления. Заполнить константы в цикле не получится, потому как цикл начинает работать в программе, а константы заполняются до появления программы. Но можно сделать приблизительно так:
const int cIntArray[] = {0,1+2,2*3,3+sin(M_PI/2),4,5,6,7,8,9};
Dmitry_ вне форума  
Непрочитано 09.03.2017, 17:32  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,830
Сказал спасибо: 919
Сказали Спасибо 4,302 раз(а) в 2,571 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Черт с ними, с константами, тут все ясно. Другое дело, как можно вообще подключать текстовые файлы к проекту с произвольным форматом, чтобы компилятор сам мог разбирать данные оттуда?
Easyrider83 вне форума  
Непрочитано 09.03.2017, 19:10  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,197
Сказал спасибо: 11,131
Сказали Спасибо 3,843 раз(а) в 2,920 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Easyrider83, так на то есть #include.
У меня где-то был cgi скрипт который помогал в своё время решить вопрос с генерацией разных таблиц с константами.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 10.03.2017, 00:50  
varostov
Прописка
 
Регистрация: 14.10.2006
Адрес: Ростов-на-Дону
Сообщений: 114
Сказал спасибо: 14
Сказали Спасибо 33 раз(а) в 22 сообщении(ях)
varostov на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Сообщение от Easyrider83 Посмотреть сообщение
Черт с ними, с константами, тут все ясно. Другое дело, как можно вообще подключать текстовые файлы к проекту с произвольным форматом, чтобы компилятор сам мог разбирать данные оттуда?

Это уже из области искусственного интеллекта .
Обычно наоборот, произвольные программы подстраиваются под синтаксис С и выдают результаты своей работы в виде массива констант. Вот, например, результат работы утилиты EZ-Click от Cypress (конфигурация для сенсорной микросхемы из серии CMBR3):


Код:
/* Project: D:\microchip\_PROJECTS\20161121_VT1_0\CMBR3_Projec  t\CMBR3_configuration\CMBR3_configuration.cprj
 * Generated: 29.11.2016 10:23:36 +03:00 */
const unsigned char CY8CMBR3116_configuration[128] = {
    0xFFu, 0xFFu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
    0x00u, 0x00u, 0x00u, 0x00u, 0x80u, 0x80u, 0x80u, 0x80u,
    0x80u, 0x80u, 0x80u, 0x80u, 0x80u, 0x80u, 0x80u, 0x80u,
    0x80u, 0x80u, 0x80u, 0x80u, 0x03u, 0x00u, 0x00u, 0x00u,
    0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x80u,
    0x05u, 0x00u, 0x00u, 0x02u, 0x00u, 0x02u, 0x00u, 0x00u,
    0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x1Eu, 0x1Eu, 0x00u,
    0x00u, 0x1Eu, 0x1Eu, 0x00u, 0x00u, 0x05u, 0x87u, 0x01u,
    0x00u, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu, 0xFFu,
    0xFFu, 0x00u, 0x00u, 0x00u, 0x13u, 0x03u, 0x01u, 0x58u,
    0x00u, 0x35u, 0x06u, 0x00u, 0x00u, 0x0Au, 0x00u, 0x00u,
    0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
    0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
    0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
    0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u,
    0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x14u, 0x89u
};
А уж этот файлик любой проект через #include с удовольствием скушает...
varostov вне форума  
Непрочитано 10.03.2017, 05:47  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Сообщение от JonRembo Посмотреть сообщение
Это что такое, ссылку можно?
Нписано с помощью большого брата и Билдера
Код:
#include ‹stdio.h›
#include ‹stdlib.h›
#include ‹math.h›

#define	N	63
void main(void)
	{
        int	i, y;
        float	dx, x, tmp;
        FILE	*fp;

        fp = fopen("costable.prn", "w");
        if (fp == NULL)
        	{
                printf("Can't open the file");
                exit(EXIT_FAILURE);
                }
        fprintf(fp, "#define NSTEPS\t %d\n\nstatic __flash\nchar\tcos2Table[] =\t{\\\\ cos square table", N);
	for (i = 0, x = -M_PI_2, dx = M_PI/N; i ‹= N; ++i)
        	{
                if (!(i % 8))
                	fprintf(fp, "\n\t\t\t");
                tmp = cos(x);
                y = ((tmp*tmp)/M_PI_2)*N*6 + 0.5;
        	fprintf (fp,"%3d%c ", y, (i!=N)? ',' : ' ');
                x += dx;
                }
        fprintf(fp, "\n\t\t\t};\n");
	fclose(fp);
//        getchar();
        }
PS: Предполагается использовать в IAR AVR.
Bill вне форума  
Непрочитано 11.03.2017, 02:37  
pasha_zv
Прописка
 
Аватар для pasha_zv
 
Регистрация: 14.12.2006
Адрес: Ставрополь - Донское
Сообщений: 260
Сказал спасибо: 115
Сказали Спасибо 189 раз(а) в 78 сообщении(ях)
pasha_zv на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

вах, наворотили.

на Экселе делаешь подобную табличку, как в архиве.
потом "файл-сохранить как- "PRN (разделитель - пробел).
и всё.
Вложения:
Тип файла: rar 3.rar (2.6 Кб, 0 просмотров)
pasha_zv вне форума  
Сказали "Спасибо" pasha_zv
LiVit (13.03.2017)
Непрочитано 11.03.2017, 15:45  
j-Roger
Гражданин KAZUS.RU
 
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 756
Сказал спасибо: 368
Сказали Спасибо 842 раз(а) в 391 сообщении(ях)
j-Roger на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Свойства проекта -› Build-actions -› Pre-build command line.

Запускается утилита, которая делает интеллектуальную работу -
подготавливает файл в нужном формате и кладет в оговоренное место.
К моменту начала построения проекта подключаемый файл готов.

Поскольку в этом случае утилита будет запускаться каждый раз перед
построением проекта, то на нее можно возложить принятие решение о
необходимости перегенерации подключаемого файла.

В общем, есть где развернуться..
j-Roger вне форума  
Непрочитано 26.03.2017, 13:38  
brawaga
Частый гость
 
Регистрация: 06.01.2011
Сообщений: 32
Сказал спасибо: 33
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
brawaga на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

Вообще,*во время компиляции много чего можно сделать.
Вот статейка, может, чего выудите для себя, или вдохновитесь.
Но лично я бы сгенерил бы константы каким-нибудь скриптом и вставил или включил бы в компилируемый проект, как вам уже советовали выше.
brawaga вне форума  
Непрочитано 17.04.2017, 16:34  
AndrFV
Вид на жительство
 
Регистрация: 20.12.2013
Сообщений: 311
Сказал спасибо: 5
Сказали Спасибо 94 раз(а) в 59 сообщении(ях)
AndrFV на пути к лучшему
По умолчанию Re: Как можно инициализировать массив констант в цикле?

А не проще хранить подобные константы в энергонезависимой памяти контроллера? И для каждого устройства писать туда нужные константы...
AndrFV вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Обзоры покупок товаров на GEARBEST.COM mikesmith Барахолка электронных компонентов 397 12.10.2018 22:51
Ностальжи по школе... Ar-Gen-Tum Отвлекитесь, эмбеддеры! 141 27.02.2015 16:10
Размещение констант в памяти программ в PIC ST_Senya Микроконтроллеры, АЦП, память и т.д 10 15.10.2009 20:12


Часовой пояс GMT +4, время: 15:14.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot