Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу Необходим системный таймер
Закрытая тема
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Leonardo Leonardo вне форума
Member
 
Сообщений: 74
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.04.2004
По умолчанию Необходим системный таймер - 06.04.2004, 20:35

плиз, помогите.
под дос, на турбо С3
необходимо зделать системный таймер для определения цикла WHILE(x), он большой и сложный .нужен таймер.
  (#2 (permalink)) Старый
Aist++ Aist++ вне форума
Member
 
Сообщений: 361
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.08.2003
По умолчанию 07.04.2004, 09:38

Я что-то не понял, что ты хочешь сделать? Типа пока цикл щёлкает, на экране что-то вроде статистики и процессбара выводить?
Ну тогда это надо в сам цикл вплести, либо надо прерывание с таймера перехватывать. Выбирай что тебе полегче будет...
  (#3 (permalink)) Старый
Leonardo Leonardo вне форума
Member
 
Сообщений: 74
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.04.2004
По умолчанию 07.04.2004, 16:16

Есть цикл WHILE(x), он большой.
Пока идет одна интерация цикла, необходимо определить за какое время.
Надо прерывание с таймера перехватывать.
Но как?
  (#4 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию ответ - 07.04.2004, 16:35

Прерываяния здесь не помогу. Но как их перехватывать есть в help - выдергиваешь оттуда код и вся.
А вообще есть (доллжны быть) стандартные функции отсчета времени вплоть до мс (или даже мкс). Перед началом цикла эта функция запускается и смотрится время которое она возвратит, в конце цикла эта функция еще раз запускается и смотрится время - разница двух времен равна времени выполнения одной итерации. А с прерываниями это слишком грубо. Если такой системной ф-ии нет, то можно ее самому налабать считыва с порта системного таймера натиканные микрросекунды без всяких там прерываний.
  (#5 (permalink)) Старый
Leonardo Leonardo вне форума
Member
 
Сообщений: 74
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.04.2004
По умолчанию 07.04.2004, 16:45

Teraa, а ты неплохую идею дал, Но!!!! Мне не совсем понятно как с системным таймером работать.
если сможешь(захочешь) покажи пример, можно на мыло.
"считывание с порта системного таймера натиканные микрросекунды"
Будешь совсем молодца.
Ads.
  (#6 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 07.04.2004, 19:14

В стандартной поставке Turbo C++ 3.0 есть в примерах два файла: timer.h и timer.cpp (ежли мой склероз мне не изменяет) - вот это и есть работа с микросхемой таймера и программный таймер для хронометража исполнения участков кода с разрешающей способностью около 0.8 мкс.
  (#7 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию 07.04.2004, 22:38

Если я правильно тебя понял: то вот это
Код:
void test_time()
{
  asm{
    mov ah,0
    int 1ah
    mov start_time, dx

    //твоё действие, время выполнения которого надо определить

    mov ah,0
    int 1ah
    mov end_time, dx
}
//теперь (end_time - start_time) ты получаешь число тиков за которое выполнялся процеес, (тока заметь за один тик на наших машинах выполнябтся милионн операц, такчто своё действие пихай в цикл на много много повторений), 1 сек = 18,2 тикам, по этим данным выведи реальное время, я точно не помню как, надо покопаться в доках, а вообще почитай книгу Роберт Журден(в инете)
  (#8 (permalink)) Старый
Anonymous
Guest
 
Сообщений: n/a
По умолчанию 08.04.2004, 03:14

ZonD and Vlad примного благодарен.
Если будут еще идеи, а особенно по идеи ZonDа - пишите. С удовольствием приму все во внимание.
С Ув. Леонид
  (#9 (permalink)) Старый
Влад Влад вне форума
Специалист
 
Сообщений: 3,884
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 27.06.2002
Адрес: Санкт-Петербург
По умолчанию 08.04.2004, 11:31

Идею ZonD'а можно немного упростить:
Код:
unsigned long* pTimer = (unsigned long*)0x0040006CL;

unsigned long startTime = *pTimer;
// ...здесь выполняешь нечто длинное...
unsigned long executionTime = *pTimer - startTime;
В MSDOS двойное слово по адресу 0x0040:0x006C - счетчик системного времени, инкрементируется каждые 55 мс (18.2 раза в секунду), важно - сбрасывается в 0 в полночь!
  (#10 (permalink)) Старый
Leonardo Leonardo вне форума
Member
 
Сообщений: 74
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.04.2004
По умолчанию 10.04.2004, 03:04

Прямо в точку Влад. Ну просто хороший человек!!!
Сэнкссс!!!
Ads
Закрытая тема

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходим совет по подбору комплектующих. Darron1986 Подбор комплектующих 0 29.11.2011 19:23
Необходим кабель для подключения сканера. Пётр Згонник Устройства ввода 3 11.07.2011 23:46
СРОЧНО необходим программист Delphi+SQL Hata6k Работа 0 03.05.2011 15:14
Для чего необходим файл подкачки? Jt91 Любые вопросы от новичков 11 28.03.2011 21:05
Блютуз: необходим драйвер Билтто Ноутбуки 1 19.02.2011 21:34
Необходим плеер для nokia n73 RoNeLoVa Сотовые телефоны 2 24.11.2008 11:49
Необходим совет специалиста по видеокартам kros4 Драйвера 7 24.02.2008 18:45
Необходим специалист в онлайн играх(MMORPG) Ilya_85 Работа 1 02.06.2006 19:11
Системный таймер как его сделать techno2 С/С++ 1 07.10.2005 21:06
Необходим алгоритм расхождения от центра по прямым vax Алгоритмы 8 04.10.2004 18:32
Таймер запускается на 1 секунду программа не успевает работать как остановить таймер Anonymous Visual C++ 4 18.09.2002 03:21



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов