Процедура прерывания таймера на главном компьютере, работающая с частотой 10 микросекунд или быстрее

Я пытаюсь запустить следующий псевдокод со скоростью 10 микросекунд или быстрее на хост-компьютере (512 МБ ОЗУ, процессор Intel Pentium 4 с тактовой частотой 2,5 ГГц и т. д.), работающем под управлением операционной системы Windows XP:

int main(void)
{
    while(1){};
}

Interrupt service routine:
every 10 microseconds, printf("Hello World");

Я знаю, что есть таймеры MFC, но они не работают, если таймеры должны срабатывать быстрее, чем 1 мс. Какой самый простой способ достичь целей моего псевдокода? Заранее спасибо.


person stanigator    schedule 24.07.2009    source источник


Ответы (2)


Я не уверен, что вы можете получить такую ​​​​производительность из Windows XP, по крайней мере, не надежно из пользовательской среды. Возможно, вам придется запускать свой код в качестве драйвера ядра или, что еще лучше, исследовать его с помощью ОС реального времени, такой как Xenomai.

person Jeremy Friesner    schedule 24.07.2009

Проигнорируйте это - я неправильно прочитал микро как милли в вопросе. Извините:

Как вы говорите, вы работаете в Windows, Мультимедийный таймер — это то, что вам нужно.

Или более новый TimerQueue TimerQueue

Вы можете получить разрешение 1 мс, в зависимости от вашего оборудования.

Удачи

person sdg    schedule 24.07.2009