Технические FAQs

Задать вопрос

Как назначить регистры для хранения времени и даты TOD (Time of Day) ?

Как назначить регистры для хранения времени и даты TOD (Time of Day) для MMI (Man Mashine Interface) в контроллерах работающих под управлением Concept и каким образом осуществляется управление ими?

Для многих процессоров ( в том числе и Quantum) при назначении адресов блока регистров для времени и даты (TOD), первый назначенный Вами адрес будет регистром управления для TOD .

Причем самый старший бит (MSB) первого назначенного регистра (регистра управления) , (MSB в Concepte имеет номер 1),   - служит для установки часов и даты.

Бит 2, (счет бит ведется с лева направо), как раз и управляет считыванием информации о текущем времени и дате в назначенные далее регистры.

Например мы назначили для "календаря" блок регистров начиная с адреса 400700 до 400707.

Тогда  регистр 400700 будет регистр упраления.

400701 - будет содержать день недели

400702 - месяц

400703 - день календаря

400704 - год

и так далее.

Если регистр 400700 записать значение 16#4000 ( бит 2 =1  чтение часов), то информация в регистрах 400701-400707 будет изменяться в соответствии с  текущим временем  и датой.

Если в регистре 400700 будет записан 0, то время и дата изменяться не будет (например это происходит при стопе контроллера).

Поэтому правильным действием перед запросом текущего времени и даты , будет обязательная проверка содержимого регистра управления TOD.

Если бит 2 установлен (например содержимое этого регистра в шестнадцатиричной форме равно 16#4000), то время и дату можно считывать, оно будет соответствовать текущему.

Если бит2 не установлен, время и дата не изменяются (остались старыми) и считанное время и дата будут отличаться от текущего (старые данные).


Вы нашли ответ на свой вопрос?
Как мы можем улучшить информацию?