Часы реального времени

Содержание

Слайд 2

К теме: Часы реального времени ЦЕЛЬ РАБОТЫ Получить навыки программирования и

К теме: Часы реального времени

ЦЕЛЬ РАБОТЫ
Получить навыки программирования и изучить возможности использования

часов реального времени.
Продолжительность работы - 4 часа.
Слайд 3

Задание Под MS DOS написать программу, которая: 1) считывает и устанавливает время в часах реального времени;

Задание

Под MS DOS написать программу, которая:
1) считывает и устанавливает время в

часах реального времени;
Слайд 4

Задание Под MS DOS написать программу, которая: 1) считывает и устанавливает

Задание

Под MS DOS написать программу, которая:
1) считывает и устанавливает время в

часах реального времени;
2) реализует функцию задержки с точностью в миллисекунды;
Слайд 5

Задание Под MS DOS написать программу, которая: 1) считывает и устанавливает

Задание

Под MS DOS написать программу, которая:
1) считывает и устанавливает время в

часах реального времени;
2) реализует функцию задержки с точностью в миллисекунды;
3) реализовать функции программируемого будильника.
Слайд 6

outp(0x70, register); //выбрать регистр через порт 70 res = inp(0x71); //считать значение Считать время

outp(0x70, register); //выбрать регистр через порт 70
res = inp(0x71); //считать значение

Считать

время
Слайд 7

outp(0x70, 0xA); //выбрать регистр 0Аh через порт 70 value = inp(0x71);

outp(0x70, 0xA); //выбрать регистр 0Аh через порт 70
value = inp(0x71); //дождаться

в нём 0х…х
// !!! Цикл ожидания не должен быть бесконечным!!!

Установить время

outp(0x70, register); //выбрать регистр
outp(0x71); //записать значение

outp(0x70, 0xB); //выбрать регистр 0Bh через порт 70
outp(0x71, inp(0x71) & 0x7f);// разрешить цикл обновления часов

outp(0x70, 0xB); //выбрать регистр 0Bh через порт 70
outp(0x71, inp(0x71) | 0x80);
// отключить внутренний цикл обновления часов

Слайд 8

1. Запретить прерывания 2. Установить свой обработчик прерывания ЧРВ (в нём

1. Запретить прерывания
2. Установить свой обработчик прерывания ЧРВ (в нём счетчик

миллисекунд)
3. Разрешить прерывания
4. Размаскировать линии сигнала запроса от
ЧРВ: А1, младший бит в ‘0’.
5. Включчить периодические прерывания (регистр В, бит 6).
6. Ожидание заданное количество миллисекунд
7. Восстановить старый обработчик

Задержка

Слайд 9

Дополнительные условия: Пока выполняется задержка часы реального времени должны идти (задерживается

Дополнительные условия:
Пока выполняется задержка часы реального времени должны идти (задерживается лишь

выполнение текущей программы/функции).

Задержка

Например:
Текущее время 00:00:00
Задержка 20.000 мс
Текущее время – не менее 00:00:20

Слайд 10

Будильник outp(0x70, register); //выбрать регистр через порт 70 outp(0x71); //записать значение

Будильник

outp(0x70, register); //выбрать регистр через порт 70
outp(0x71); //записать значение

Размаскировать линии сигнала

запроса от
ЧРВ: А1, младший бит в ‘0’.
Переопределить прерывание от будильника 4Ah.