|
|
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
ОС ДОС. Процесор х86 (скорее всего 386). Функция delay() отмеряет минимум 50-60 мс. Таймер тоже с таким интервалом тикает. А как можно отмерить меньший промежуток времени? Например 10 мс. Вариант 1: комп может на это время уснуть. Вариант 2: функция задержки проверяет во время своей работы значение какой-либо переменной и может быть завершена досрочно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 14:40 |
|
||
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
Можно программно изменить частоту таймера. Подробностей не помню, смотри Джордейна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 14:53 |
|
||
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
Смутно помнится, что с 43 порта можно было снять время точнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 16:27 |
|
||
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
matsicОС ДОС. Процесор х86 (скорее всего 386). Функция delay() отмеряет минимум 50-60 мс. Таймер тоже с таким интервалом тикает. А как можно отмерить меньший промежуток времени? Например 10 мс. Вариант 1: комп может на это время уснуть. Вариант 2: функция задержки проверяет во время своей работы значение какой-либо переменной и может быть завершена досрочно. мона по разному... постоянным сканированием с порта PIT (8253)...это то что осталось от делителя там... Либо перепрограммируя данный девайс получить прерывание от него не 1/18 раз в секунду а чаще. В принцепе что и делали многие игры. Такая точность мягко говоря - редко встречается в задачах. Форточки к примеру имеют именно этот (10 мс.) порог точности, на всевозможных слипах. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 17:11 |
|
||
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
muk07Смутно помнится, что с 43 порта можно было снять время точнее. Ага, именно на 43 порт он прямо и передается непосредственно из института метрологии в Петербурге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2006, 20:19 |
|
||
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
Да!? А мне говорили, что по средам из Гринвича. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 06:00 |
|
||
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
Ну это зависит от того, где был компьютер произведен. Китайские желтые материнки вообще по звездам время мерили, на основе старинных китайских философских теорий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 10:22 |
|
||
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
круглыймона по разному... постоянным сканированием с порта PIT (8253)...это то что осталось от делителя там... Либо перепрограммируя данный девайс получить прерывание от него не 1/18 раз в секунду а чаще. А пример можно?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 15:32 |
|
||
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
matsicА пример можно?:) опс...тут Вы мня и поймали... под рукой примеров нема... а вот поиск в инете катит... для затравки дам ссылку на примеры и описание по данной тематике.. Кстати похоже на выдержки из Джордена (как тут выше прозвучало - кстати не плохая книга, в своё время многие по ней учились...правда в электронном виде её больше знают, чем печатном)... PIT (программируемый интервальный таймер - 8253 там же, заметки про прерывания под досом если будут проблемы - спрашивайте. отвечу, но не сразу. нуна будет не забыть подтащить сидюк с кодом под досик...правда код на азме... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 16:13 |
|
||
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
MasterZivАга, именно на 43 порт он прямо и передается непосредственно из института метрологии в Петербурге. Не поленился достать из закромов DOS help: HELP6 Ports 40H-43H control the PC timer circuits. There are three timer channels: 0) Channel 0 is used as a general system timer. It handles the periodic "timer-tick". It is initialized by the BIOS to invoke INT 08H (IRQ 0) 18.206 times per second (once every 54.936 milliseconds). 1) Channel 1 is used in a dedicated manner to support the memory refresh function. The output is used to generate a direct-memory access (DMA) cycle request on DMA channel 0. This DMA channel is used to refresh the systems RAM by performing a dummy memory-read every so often (once every 15 microseconds on the original PC). This is critical to system operation, so we are usually advised to keep "hands off". However, I have seen experiments in which this timer was slowed down a bit in order to increase overall system performance by a few percent. Too slow of a value eventually causes fatal memory errors. 2) Channel 2 is used to drive the audio speaker on the system board (it originally handled cassette-tape I/O, but that is surely moot). The output of channel 2 can be directed to control the speaker via I/O port 61H (see PPI Ports and Speaker Control). Channel 2 is available for application-controlled timing tasks; however, it is a global resource. Rather than using direct port I/O you are advised to use fns such as INT 1aH and INT 15H 86H for timed operations. Port Description ЯЯЯЯ ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ 40H Read/Write: Count value for counter 0 Port 43H bits 4-5 control the way the counter is set. 41H Read/Write: Count value for counter 1 41H Read/Write: Count value for counter 2 ДДДД ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД 43H Write: set channel's mode of operation Ц7В6В5В4В3В2В1В0· єch#іr/lіmode і є УДБДБДБДБДБДБДБТЅ bits mask АТЩ АТЩ АДТДЩ ИН 0: 01H 0=process count as binary є є є 1=process counts as BCD є є ИННННН1-3: 0eH select timer mode: є є 000 = mode 0: interrupt on terminal count є є 001 = mode 1: programmable one-shot є є x10 = mode 2: rate generator є є x11 = mode 3: square-wave rate generator є є 100 = mode 4: software-triggered strobe є є 101 = mode 5: hardware-triggered strobe є ИНННННННННН4-5: 30H select read/load sequence: є 00 = latch counter for stable read є 01 = read/load most significant byte only є 10 = read/load least significant byte only є 11 = read/load LSB then MSB ИНННННННННННННН6-7: c0H specify counter to affect: 00 = counter 0, 01= counter 1 10 = counter 2, 11= counter 3 See Also: Speaker Control PPI Ports I/O Port Map -- Иногда полезно придержать сарказм - может вернуться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2006, 17:59 |
|
||
|
DOS. Задержка менее 50 мс.
|
|||
|---|---|---|---|
|
#18+
matsicОС ДОС. Процесор х86 (скорее всего 386). Функция delay() отмеряет минимум 50-60 мс. Таймер тоже с таким интервалом тикает. А как можно отмерить меньший промежуток времени? Например 10 мс. Вариант 1: комп может на это время уснуть. Вариант 2: функция задержки проверяет во время своей работы значение какой-либо переменной и может быть завершена досрочно. Есть более тупой способ - задаеш параметр честота процесора и делаеш цикл ... до 10,000 - 100,000 - 1,000,000 ... сколько нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2006, 12:22 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=361&tid=2031536]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 367ms |

| 0 / 0 |
