Сейчас на форуме: UniSoft, laslo, bartolomeo (+5 невидимых) |
eXeL@B —› Программирование —› необходимо перепрограммировать таймера 8253/8254 IBM PC |
Посл.ответ | Сообщение |
|
Создано: 26 октября 2011 20:19 · Личное сообщение · #1 Приветствую всех, необходимо перепрограммировать таймера 8253/8254 IBM PC, так чтобы можно было делать замеры времени до миллисекунды. Задача в том чтобы изменение счетчика вступило в силу только после завершения текущего цикла. Перепробовал все режимы, счетчик сбрасывается после занесения в порт старшего байта и устанавливает сразу новое значение. Особое внимание уделял 2 режиму (программируемый генератор импульсов;) и 5 (аппаратно-запускаемый одновибратор) Использую: Dos, код пишу на pascal. |
|
Создано: 30 октября 2011 12:55 · Личное сообщение · #2 |
|
Создано: 30 октября 2011 13:19 · Поправил: bowrouco · Личное сообщение · #3 GraB > Задача в том чтобы изменение счетчика вступило в силу только после завершения текущего цикла. Значит по завершению цикла устанавливайте новые настройки. tundra37 Что вам даст код, нужно знать как прогать этот таймер(PIT я так понимаю). Вот я например бикал спикером через этот таймер: Code:
Понятно чтонибудь из этого |
|
Создано: 30 октября 2011 16:54 · Личное сообщение · #4 |
|
Создано: 01 ноября 2011 22:04 · Личное сообщение · #5 всё-таки проблема осталась, при считывании счётчика трижды происходит сбрасывание. вот код: функция инициализации port[$43]:=$0; port[$43]:=$36; port[$40]:=$a9; port[$40]:=$4; {1193 по умолчанию} функция переустановки счётчика port[$43]:=$0; cl1:=port[$40]; ch1:=port[$40]; {результат cl1 = 40h ch1= 2h} port[$43]:=$0; port[$40]:=a; port[$40]:=b; {значение счетчика варьируются от 1193 до 1194 } port[$43]:=$0; cl2:=port[$40]; ch2:=port[$40]; {результат cl2 = 20h ch2= 2h} {читаем ещё} port[$43]:=$0; cl3:=port[$40]; ch3:=port[$40]; {результат cl3 = a8h ch3= 4h - сбросился} бывают такие казусы, что на втором чтении значение результата cl2 = a9h ch2= 4h, но на третьем всё хорошо cl3 = 01h ch3= 2h использую прерывание 8, IRQ0 - прерывание интервального таймера, возникает, может оно воздействует на счетчик ? |
eXeL@B —› Программирование —› необходимо перепрограммировать таймера 8253/8254 IBM PC |