Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

RTC & будильник

4.6K
11 декабря 2006 года
SerG1nho
72 / / 30.10.2006
Написал свой будильник, используя часы реального времени. Делал таким образом- заносил в соответсвующие адреса будильника свои значения, потом их сравнивал с реальным временем и при совпадении выводил звук.И всё это с помощью портов.
Как это сделать с помощью прерывания (если не ошибаюсь (4ah))??
Заранее спасибо.
24K
11 декабря 2006 года
Степа
2 / / 11.12.2006
Все предельно просто.
1. Цепляетесь на 70h прерывание /от часов реального времени, IRQ9/. В обработчике читайте ячейку 0Ch /там содержатся биты источника прерываний/. Источников может быть три: по окончанию обновления часов /ежесекундно/, периодические /можно настроить по степеням двойки от 2 до 8192 Гц, по умолчанию настроено на 1024 Гц/ и от будильника /который вам и нужен/. Обычно /в MS-DOS/ это прерывание свободно /т.е. просто стоит IRET/. Если есть обработчик, то он ничего особо полезного не делает и его можно заменить своим /я так и делаю - значительно проще получается/. Маленький совет: перед выходом из прерывания читайте ячейку 0Ch /чтение этой ячейки сбрасывает состояние прерывания МС часов реального времени/. Если это не сделать, то в случае прихода еще одного прерывания в процессе отработки старого вы никогда больше /до чтения ячейки 0Ch/ не получите 70-го прерывания...

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

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог