Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

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

Ответ
 
Опции темы Опции просмотра
Старый 17.01.2017, 15:48   #1
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 42
Сообщений: 376
Вес репутации: 243/21
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию C18, как создать макрос чтобы компилятор дату вставлял в строку?

Здравствуйте,
сейчас я делаю руками так

const rom char sVERSION[] = "17.01.2017";

но хочется чтобы компилятор сам эту строку формировал. Возможно ли?
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 17.01.2017, 16:03   #2
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 34
Сообщений: 1,072
Вес репутации: 3454/71
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Цитата:
Сообщение от hfmscan Посмотреть сообщение
Здравствуйте,
сейчас я делаю руками так

const rom char sVERSION[] = "17.01.2017";

но хочется чтобы компилятор сам эту строку формировал. Возможно ли?
Попробуй.
Код:
const rom char sVERSION[]= __DATE__
Проверить на С18 нет возможности.
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.
yeskela вне форума   Ответить с цитированием
Старый 17.01.2017, 16:20   #3
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 42
Сообщений: 376
Вес репутации: 243/21
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Спасибо, это работает, но выдает в таком формате:
Jan 17 2017

нельзя как нить изменить формат?

PS: Сам конечно при выводе могу менять формат, но это лишние байты кода
вдруг есть умное решение...
__________________
STM32F042
PIC18F25k80

Последний раз редактировалось hfmscan; 17.01.2017 в 16:28.
hfmscan вне форума   Ответить с цитированием
Старый 17.01.2017, 16:44   #4
siargy
Senior Member
 
Аватар для siargy
 
Регистрация: 03.07.2007
Адрес: Минск
Возраст: 37
Сообщений: 793
Вес репутации: 1121/55
siargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud ofsiargy has much to be proud of
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

возможно это системные настройки надо смотреть
__________________
Построил тепличку, посеял литопсы, вырастил кактусы
siargy вне форума   Ответить с цитированием
Старый 17.01.2017, 22:49   #5
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 42
Сообщений: 376
Вес репутации: 243/21
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Цитата:
Сообщение от siargy Посмотреть сообщение
возможно это системные настройки надо смотреть
в винде настройка даты другая, а где еще не знаю... пока оставил так...
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 17.01.2017, 23:02   #6
siarzhuk
Member
 
Аватар для siarzhuk
 
Регистрация: 08.11.2014
Возраст: 46
Сообщений: 91
Вес репутации: 761/17
siarzhuk is a splendid one to beholdsiarzhuk is a splendid one to beholdsiarzhuk is a splendid one to beholdsiarzhuk is a splendid one to beholdsiarzhuk is a splendid one to beholdsiarzhuk is a splendid one to beholdsiarzhuk is a splendid one to behold
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Попробуйте вот так:

Код:
// Example of __DATE__ string: "Jul 27 2012"

#define BUILD_MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n')
#define BUILD_MONTH_IS_FEB (__DATE__[0] == 'F')
#define BUILD_MONTH_IS_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r')
#define BUILD_MONTH_IS_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p')
#define BUILD_MONTH_IS_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y')
#define BUILD_MONTH_IS_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n')
#define BUILD_MONTH_IS_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l')
#define BUILD_MONTH_IS_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u')
#define BUILD_MONTH_IS_SEP (__DATE__[0] == 'S')
#define BUILD_MONTH_IS_OCT (__DATE__[0] == 'O')
#define BUILD_MONTH_IS_NOV (__DATE__[0] == 'N')
#define BUILD_MONTH_IS_DEC (__DATE__[0] == 'D')

#define MONTH_STR \
      ( \
        (BUILD_MONTH_IS_JAN) ? "01" : \
        (BUILD_MONTH_IS_FEB) ? "02" : \
        (BUILD_MONTH_IS_MAR) ? "03" : \
        (BUILD_MONTH_IS_APR) ? "04" : \
        (BUILD_MONTH_IS_MAY) ? "05" : \
        (BUILD_MONTH_IS_JUN) ? "06" : \
        (BUILD_MONTH_IS_JUL) ? "07" : \
        (BUILD_MONTH_IS_AUG) ? "08" : \
        (BUILD_MONTH_IS_SEP) ? "09" : \
        (BUILD_MONTH_IS_OCT) ? "10" : \
        (BUILD_MONTH_IS_NOV) ? "11" : \
        (BUILD_MONTH_IS_DEC) ? "12" : \
        /* error default */  "99" \
    )

  const char strVersion[] = {
     __DATE__[4],
    __DATE__[5],
    '.',
    MONTH_STR[0],
    MONTH_STR[1],
    '.',
    __DATE__[ 7],
    __DATE__[ 8],
    __DATE__[ 9],
    __DATE__[10],
    '\0'
  };
Вдохновлялся отсюда.
siarzhuk вне форума   Ответить с цитированием
Старый 17.01.2017, 23:20   #7
siarzhuk
Member
 
Аватар для siarzhuk
 
Регистрация: 08.11.2014
Возраст: 46
Сообщений: 91
Вес репутации: 761/17
siarzhuk is a splendid one to beholdsiarzhuk is a splendid one to beholdsiarzhuk is a splendid one to beholdsiarzhuk is a splendid one to beholdsiarzhuk is a splendid one to beholdsiarzhuk is a splendid one to beholdsiarzhuk is a splendid one to behold
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Цитата:
Сообщение от siarzhuk Посмотреть сообщение
Попробуйте вот так:
Упс, поспешил я, каюсь - работает только на С++.
siarzhuk вне форума   Ответить с цитированием
Старый 18.01.2017, 09:54   #8
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 49
Сообщений: 1,762
Вес репутации: 2479/76
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Тема уже была, повторюсь. Воспользуйтесь программой CopyData
__________________
Настройся на хороший день и он таким будет!
Vovka вне форума   Ответить с цитированием
Старый 18.01.2017, 09:56   #9
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 31
Сообщений: 1,252
Вес репутации: 2068/66
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Цитата:
Сообщение от siarzhuk Посмотреть сообщение
Упс, поспешил я, каюсь - работает только на С++.
Я вручную, после старта программы, парсил строку и менял формат на нужных, что бы уложиться в длину пакета.
Рак вне форума   Ответить с цитированием
Старый 18.01.2017, 10:14   #10
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 49
Сообщений: 1,762
Вес репутации: 2479/76
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Цитата:
Сообщение от Рак Посмотреть сообщение
Я вручную
Для облегчения этой задачи сделал такую программку
__________________
Настройся на хороший день и он таким будет!
Vovka вне форума   Ответить с цитированием
Старый 18.01.2017, 16:02   #11
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 42
Сообщений: 376
Вес репутации: 243/21
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Цитата:
Сообщение от Vovka Посмотреть сообщение
Тема уже была, повторюсь. Воспользуйтесь программой CopyData
Спасибо, попробую ваш вариант...
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 23.01.2017, 13:22   #12
Romantic
Senior Member
 
Аватар для Romantic
 
Регистрация: 13.07.2007
Адрес: Ленинград
Возраст: 32
Сообщений: 2,081
Вес репутации: 3340/90
Romantic has a reputation beyond reputeRomantic has a reputation beyond reputeRomantic has a reputation beyond reputeRomantic has a reputation beyond reputeRomantic has a reputation beyond reputeRomantic has a reputation beyond reputeRomantic has a reputation beyond reputeRomantic has a reputation beyond reputeRomantic has a reputation beyond reputeRomantic has a reputation beyond reputeRomantic has a reputation beyond repute
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Свидетельствую: CopyData работает прекрасно! Тов. Vovka ещё раз большое спасибо (в репу больше не даёт стукнуть )!
Romantic вне форума   Ответить с цитированием
Старый 23.01.2017, 13:41   #13
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 49
Сообщений: 1,762
Вес репутации: 2479/76
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Romantic, не за что!
__________________
Настройся на хороший день и он таким будет!
Vovka вне форума   Ответить с цитированием
Старый 03.03.2017, 13:09   #14
hfmscan
Senior Member
 
Аватар для hfmscan
 
Регистрация: 17.01.2013
Адрес: Москва
Возраст: 42
Сообщений: 376
Вес репутации: 243/21
hfmscan has a spectacular aura abouthfmscan has a spectacular aura abouthfmscan has a spectacular aura about
Отправить сообщение для hfmscan с помощью ICQ
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Цитата:
Сообщение от Vovka Посмотреть сообщение
Тема уже была, повторюсь. Воспользуйтесь программой CopyData
Здравствуйте Владимир!
Спасибо, работает, но хотел узнать а у вас нет такого формата чтобы дата в классическом формате вставлялась?
сейчас:
const far rom char sVERSION[] = "3.3.2017";
а хочется:
const far rom char sVERSION[] = "03.03.2017";

описано это так
const far rom char sVERSION[] = "__DATE__";
__________________
STM32F042
PIC18F25k80
hfmscan вне форума   Ответить с цитированием
Старый 03.03.2017, 19:33   #15
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 49
Сообщений: 1,762
Вес репутации: 2479/76
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: C18, как создать макрос чтобы компилятор дату вставлял в строку?

Добавил и этот вариант
__________________
Настройся на хороший день и он таким будет!
Vovka вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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


Часовой пояс GMT +3, время: 08:41.


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