timeunit.cpp

来自「基于PC104平台」· C++ 代码 · 共 42 行

CPP
42
字号
////////////////////////////////////////////////////////
//               time standard unit                   //
////////////////////////////////////////////////////////
#include "timeunit.h"

void SetTimer();   				// set 8253 interrupt
void ResetTimer(); 				// reset 8253 interrupt
void interrupt timer_newhand(...);  	// interrupt service
void interrupt (*timer_oldhand)(...); 	// keep old service program

void interrupt timer_newhand(...)
{
    int i;
//	cdt_timer++; if(cdt_timer>2000) cdt_timer=3000;
//	for (i = 0; i < 200; i++);

		if (ykoper.timer++ > 30000) ykoper.timer = 0;

		for (i = 0; i < 10; i++) {
			//below count query and check time gap
			if (isatimer[i].querycount++ >= 2000) isatimer[i].querycount = 0;
			if (isatimer[i].checktime++ >= 7000) isatimer[i].checktime = 0;
			//above count query and check time gap
			if (port_run_flag[i] == TRUE) watchdog[i]++;
			if (watchdog[i] >= 60000) watchdog[i] = 0;
		}
		timer_oldhand();
}

void SetTimer()
{
	timer_oldhand = getvect(TIMERINT);          // keep old int service
	setvect(TIMERINT, timer_newhand);          // load new int service
}

void ResetTimer()
{
	setvect(TIMERINT, timer_oldhand);		// restore old int service
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?