neyron
Зарегистрирован: 07.04.2005 Сообщения: 2
|
Добавлено: Ср Апр 13 2005 11:40 Заголовок сообщения: Опять таймер |
|
|
Нужно отследить временные интервалы в Линуксе. Есть ли там ~10мс системный тик как в Виндовз?
Использование
tv.it_value.tv_sec=1;
tv.it_value.tv_usec=999999;
tv.it_interval.tv_sec=1;
tv.it_interval.tv_usec=999999;
setitimer(ITIMER_REAL,&tv,NULL);
getitimer(ITIMER_REAL,&tv);
printf("\n%ld\n",tv.it_value.tv_usec);
наводит на нехорошие подозрения о 10мс-ном тике.
Основная проблема - выловить компортовский тайм-аут.
Какое время выполнения фции read(fd,buff,250) на скорости 57600?
Могу ли я вычислить с помощью таймера таймаут read(...), если данные не будут поступать в порт?
или эффективнее сделать
timeout_counter=50; //50x100мкс=5мс
while(timeout_counter)
{
usleep(100);
timeout_counter--;
if(inb(base_addr+5)&1) // бит наличия данных в UART
{
data=inb(base_addr);
timeout_counter=0;
}
} |
|