加快中断处理(1)

This commit is contained in:
Yourtion
2016-04-19 11:09:00 +08:00
parent 9e1c17b4d1
commit 792c8b7082

View File

@@ -49,7 +49,7 @@ void timer_init(struct TIMER *timer, struct FIFO8 *fifo, unsigned char data)
void timer_settime(struct TIMER *timer, unsigned int timeout)
{
timer->timeout = timeout;
timer->timeout = timeout + timerctl.count;
timer->flags = TIMER_FLAGS_USING;
return;
}
@@ -61,8 +61,7 @@ void inthandler20(int *esp)
timerctl.count++;
for (i = 0; i < MAX_TIMER; i++) {
if (timerctl.timer[i].flags == TIMER_FLAGS_USING) {
timerctl.timer[i].timeout--;
if (timerctl.timer[i].timeout == 0) {
if (timerctl.timer[i].timeout <= timerctl.count) {
timerctl.timer[i].flags = TIMER_FLAGS_ALLOC;
fifo8_put(timerctl.timer[i].fifo, timerctl.timer[i].data);
}