Segnetics

Вернуться   Segnetics > Форум Segnetics

Форум Segnetics Территория общения

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.08.2014, 18:44   #1
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию timstamp (не unix_time)

Попробовал собрать макросы метки времени, "собирающих" дату и время в одну переменную типа long (с точностью до 1 секунды). В теории должна работать на любом Сегнетиксе, но проверял только на smh2G. Выношу на рассмотрение коллег (макросы открыты для просмотра и даже испохабливания).

1) проверка "истинности" входных данных не проводится - макрос рассчитан на прием данных из соответствующих элементов FBD. Если кому надо вводить их "с клавиатуры" - прошу позаботиться о проверке корректности заранее.
2) На сохранение года осталось 6 бит (это числа от 0 до 63), поэтому за "начальный" год выбран 1984 (он в двоичном коде выглядит как 11111оооооо, т.е. 6 последних бит при записи года в двоичном виде - будут ни чем иным, как смещением от 1984 года до рассматриваемой даты).
3) для выполнения каких-либо вычислений - упакованный формат ts1984 абсолютно непригоден! (впрочем, особые извращенцы вполне могут это сделать - создав обработчик из десятков FBD-блоков)....

макросы упаковки ts1984_in и распаковки ts1984_out пригодны в следующем диапазоне дат:
с 00:00:00 1.01.1984 по 23:59:59 31.12.2047 (а де-факто сохраняют с 00:00:00 0.00.1984 по 31:63:63 31.15.2047)


Arsie
DEN
Пожалуйста, посмотрите - "оптимизируется" такой макрос вашим компилятором при записи в контроллеры,
или сильно более громоздкая конструкция на регистрах сдвига и преобразованиях int->long потребует меньше ресурсов?
.

Последний раз редактировалось Arsie, 19.08.2014 в 11:04 Причина: добавил п.3, а заодно чуточку переформулировал отдельные пункты (смысл не менял, ничего не удалял)
ailcat вне форума   Ответить с цитированием
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



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


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023