Evgeny_CDАрхитектор (23.02.2009 18:16, просмотров: 5008)
Техника точного определения времени при обработке таймер + прерывание. Основная засада - считал таймер, полез в структуру в памяти (когда разрядность времени больше разрядности таймера), и вопрос - прерывание уже отработало или нет?
Самое изщное, вероятно, решение.
Прерывание срабатывает. Делает свою работу. Или даже не прерыание, а какая-то процедура. И когда она изменила структуры в памяти, она читает значение таймера и пишет его в отдельное поле структуры.
В user space читаешь таймер, читаешь это отдельное поле. Если поле меньше таймера - прерывание было, лезешь к остальной части структуры. Иначе проверяешь снова.
На случай каких-то сложных структур, когда данные в памяти меяются не по переполнению таймера - несколько полей в структуре. Типа когда должно было случиться прерывание, когда его обработали, и когда следующее.