|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.04.2008, 14:55 | #1 |
Регистрация: 25.04.2008
Сообщений: 7
|
Системный таймер и частота процессора
Всем привет. На носу диплом.. в процессе разработки зашла в тупик. у меня есть функция для определения тактовой частоты процессора. Нужно с помощью нее получать конкретные временные зедержки (привязку нужно сделать через системный таймер). Не могу придумать как это реализовать. Частота получается с помощью RdtSC(если нужно взглянуть на функцию, могу выложить исходник). Очень надеюсь на вашу помощь..
|
25.04.2008, 15:04 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Делается простой пустой цикл в котором проверяется количество прошедших тактов. Если через таймер,то выкладывайте исходник, Вы даже не указали ОС.
|
25.04.2008, 15:55 | #3 |
Регистрация: 25.04.2008
Сообщений: 7
|
ОС виста. процессор 2 ядерный
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var hF, T, sc, et : int64; function RdTSC : int64; begin asm db $0f, $31 end; end; function GetCyclesPerSecond:int64; stdcall; begin QueryPerformanceFrequency(hF); QueryPerformanceCounter(T); et := T + hF; sc := RdTSC; repeat QueryPerformanceCounter(T); until (T >= et); Result := RdTSC - sc; end; procedure TForm1.Button1Click(Sender: TObject); begin GetCyclesPerSecond; end; end. |
25.04.2008, 16:10 | #4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
|
25.04.2008, 16:22 | #5 |
Регистрация: 25.04.2008
Сообщений: 7
|
на системный таймер нужно завязать вызов функции определения частоты. Нет, Delphi про RDTSC пока не в курсе).
|
25.04.2008, 16:42 | #6 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Опять ничего не понял. Вы собираетесь периодически проверять количество прошедших тактов и делить их на <тактов в секунду>? Что в Вашем случае понимается под системным таймером? И какой величины задержка нужна?
|
25.04.2008, 22:36 | #7 |
Регистрация: 25.04.2008
Сообщений: 7
|
мин. вел. определяется тактовой частотой МП. Системный таймер i8253(4)
|
25.04.2008, 22:58 | #8 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Минимальная величина определяется операционной системой. Особенно в Ring3
А при чём здесь счётчик тактов процессора? И как Вы собираетесь из дельфи таймер программировать? Вы можете объяснить собственный вопрос? Если Вы собираетесь строить задержки по таймеру, зачем Вам RDTSC? Если по тактам, зачем таймер? По какой схеме Вы их хотите связать? |
25.04.2008, 23:25 | #9 |
Регистрация: 25.04.2008
Сообщений: 7
|
Я, к сожалению, не выбираю каким способом их организовать. Мне поставлена задача: сделать с помощью указанных средств(частота МКП и системный тайиер). И если бы я знала как их связать я бы здесь не написала...
Я надеюсь получить здесь конкретный ответ (читай код), как мне прикрутить формирование задержки на таймер. Мой опыт программирования на Delphi пока ограничен институтом, и я не могу поспорить с Вами, можно ли там запрограммировать таймер. Но раз такая задача поставлена, то, наверное, это реально. |
25.04.2008, 23:42 | #10 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Цитата:
Код:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Превышена частота | Showy | Компьютерное железо | 6 | 08.07.2008 12:48 |
Частота и количество | valko12 | Microsoft Office Excel | 14 | 21.05.2008 11:41 |
Частота процессора. Delphi | Disb | Помощь студентам | 1 | 20.02.2008 09:28 |