IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Работа с таймером., Таймер высокого разрешения
Shub
сообщение 9.04.2004 9:30
Сообщение #1


Гость






И так такт таймера по умолчанию составляет 55 мс. Но в жизни есть такие чудесные моменты, когда требуется, что-нибудь периодически выполнять через 20 мс, 10 мс или даже 1 мс. В сети выложены примеры быстрых таймеров, но, честно говоря, что к чему в них я так понять и не смог. Из не проверенных данных я знаю, что изменить такт таймера с 55 мс на 10 мс условно говоря просто, вот только ни где не сказано как это сделать. Как получают более мелкие такты для меня большая загадка.
Просветите, пожалуйста.

Примеры перепрограммирования частот системного таймера находятся здесь:
http://pascal.sources.ru/datetime/index.htm

PS Я не программист, так балуюсь, С и Асм’у не обучен.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Shub
сообщение 22.04.2004 9:57
Сообщение #2


Гость






Е-е-е, получилось. Значиться так:

43h - управляющий регистр:

7 6 5 4 3 2 1 0
T-T-T-T-T-T-T-
¦ ¦ ¦ ¦ ¦
LT+T+T+T+T+-+T+T-
LT- LT- L=T=- L= BCD: 0 - двоичный счет;
¦ ¦ ¦ 1 - двоично-десятичный счет.
¦ ¦ ¦
¦ ¦ L===== M: 000 - режим 0;
¦ ¦ 001 - режим 1;
¦ ¦ X10 - режим 2;
¦ ¦ X11 - режим 3;
¦ ¦ 100 - режим 4;
¦ ¦ 101 - режим 5.
¦ ¦
¦ L========== RW: 00 - код команды CLC (запомнить CE);
¦ 01 - чтение/запись старшего байта;
¦ 10 - чтение/запись младшего байта;
¦ 11 - чтение/запись младшего, затем
¦ старшего байта.
¦
L============== SC: 00 - канал 0;
01 - канал 1;
10 - канал 2;
11 - код команды RBC (чтение состояния канала).

Следовательно, вводим такую последовательность – 00100110 или в десятичном 38, с права на лево: первый ноль – двоичный счет, 011 - генератор меандра, 10 - чтение/запись младшего байта, ну и последние 00 – потому что канал 0 используется в системных часах времени суток.

В паскалевском виде это выглядит так:
Port [$43]:=38;

И потом вводим максимальное значение для младшего байта 256:
Port [$40]:=256;

И получаем бешенный таймер smile.gif , только нужно чуток подождать после перепрограммирования таймера система слегка задумается.

Менее шустный таймер у меня пока не получается :p2: – машина виснет. Но ковырять надо RW.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Shub   Работа с таймером.   9.04.2004 9:30
Altair   А здесь можно узнать, как программировать таймер с...   16.04.2004 6:30
Shub   Спасибо, хоть там и много асма, но сообщения Vespe...   19.04.2004 10:30
Altair   Кстати очень интересную ссылку подкинул Shub, заме...   19.04.2004 14:02
Shub   Попробовал то, что предложил Vesper (имеется в вид...   19.04.2004 17:06
Altair   Хм .... Надо попробовать самому. Я тоже интерисую...   19.04.2004 17:45
Altair   Так, так .... читаем, что тут: http://www.dklab.r...   19.04.2004 18:53
Shub   Так добавлю еще одну ссылку: http://www.vcl.ru/htm...   20.04.2004 8:53
Shub   Мои попытки ускорить таймер потерпели фиаско. Port...   21.04.2004 16:56
Altair   Вот, что у Питера Нортона написано: Т.е. программ...   21.04.2004 19:52
Shub   Е-е-е, получилось. Значиться так: 43h - управляющ...   22.04.2004 9:57
Shub   Сорри, в моем примере надо вводить не 256, а 1, то...   22.04.2004 12:27
Altair   Shub, высший класс! А выше скорость не выйдет,...   22.04.2004 13:36
Guest   Спасибо :), я в курсе, что скорость выше не буде...   22.04.2004 14:17
Altair   нашел.... Пишем модуль для работы с системным тайм...   10.03.2005 22:29
xds   f = 1193180 Гц / c где с = коэффициент деления (ч...   11.03.2005 4:20
xds   Пример программирования таймера (используется для ...   11.03.2005 4:45
Aelita   А как переделать Вашу программу, если нужно еще в ...   14.11.2010 5:13
Lapp   А как переделать Вашу программу, если нужно еще в ...   14.11.2010 9:25
Aelita   Я работаю, как ни странно, под DOS32 (Free Pascal)...   15.11.2010 7:01
Lapp   Я работаю, как ни странно, под DOS32 (Free Pascal)...   15.11.2010 9:17
TarasBer   Что же это за код такой, что его работа так сильно...   15.11.2010 12:59


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 0:36
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"