Помогите. не могу разобраться с таймером

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
nekxxtoxxx
Сообщения: 1
Зарегистрирован: 18 июн 2009, 01:25

я взял чужую прогу, немогу понять, как работает таймер. помогите

в начале проги:
mov ah,2ch
int 21h
mov [time],dl

сам таймер:
proc timer
mov ah,2ch
int 21h
cmp dl,[time]
je end_timer
mov [time],dl
delay:
mov ah,2ch
int 21h
cmp dl,[time]
je delay
mov [time],dl
end_timer:
ret
endp
объясните, как этот процесс замедляет выполнение программы, чтобы я мог преподу объяснить плиз.
если нужно, я исходник скину
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Без самой программы нельзя сказать как эта процедура ее замедляет. Может она вообще "не при делах" и не вызывается ни разу :)
It's a long way to the top if you wanna rock'n'roll
softer8
Сообщения: 2
Зарегистрирован: 10 авг 2009, 22:44

Это не алгоритм замедляет а работа компутера ..прерывания и другое

хочешь чобы таймер все время точно работал необходимо внести в исходник корекцию времени. если начинает отставать, то корректируем

а препод идиот если не понимает что простой алгоритм будет отставать
airyashov
Сообщения: 441
Зарегистрирован: 02 ноя 2007, 10:31

в идеале это тормоз на 1 сек, считает пока сотые доли секунды на будет равны, только где гарантия, что прерывание не выполнится быстрее
icq:3(один)7748666
mail:airyashov( а)inbox.ru
Goodwin98
Сообщения: 4
Зарегистрирован: 01 июл 2009, 02:02
Контактная информация:

что прерывание не выполнится быстрее
А что мешает вставить 2 таких прерывания?

Код: Выделить всё

	mov ah,2ch
	int 21h
	mov si,dx
@@:
	int 21h
	cmp si,dx
	jz @b
	mov si,dx
@@:
	int 21h
	cmp si,dx
	jz @b
Будет задержка 0,02 - 0,04 секунды.
Ответить