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; И получаем бешенный таймер Менее шустный таймер у меня пока не получается :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 Сорри, в моем примере надо вводить не 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![]() ![]() |
|
Текстовая версия | 9.12.2025 2:51 |