Цитата(Terminator @ Mar 13 2008, 09:50)

Есть необходимость измерять интервалы времени с какой-то точностью. В разных задачах разные интервалы.
Мне видится два способа реализации, ускорить системный таймер либо сгородить "систему" на каком нибудь аппаратном таймере "тикающем" с требуемой точностью.
Первый способ вроде как самый простой, но много процессорного времени уйдёт на этот системный таймер. Второй позволяет сделать системный таймер помедленнее, но не сожрёт ли система на аппаратном таймере больше процессорного времени чем в первом случае?
Городил ли кто-нибудь систему на отдельном аппаратном таймере, стоит ли заморачиваться?
Вполне нормальный расклад. Вы будете экономить на том, что после прерывания от вашего "быстрого" таймера ОС не будет каждый раз проходить по списку задачь и декрементировать таймауты.
Я делаю так, как вы описали.
uCOS-II, ARM7 (NXP на 60 МГц), таймер ОС тикает на 100-200 Гц, дополнительный таймер - на 8 кГц.
Нажмите для просмотра прикрепленного файлаПричем таймер ОС сделан на одном из программных таймеров с тиками 8 кГц, дополнительно аппаратный таймер не забирается:
Код
class TOsTimer : TTimer
{
public:
TOsTimer() : TTimer(1000000/OS_TICKS_PER_SEC/TIMER_ONE_TICK_MCS, true) { }
private:
virtual void Tick(void)
{
OSTimeTick();
}
};