⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pit.cc.svn-base

📁 德国Erlangen大学教学操作系统源码。
💻 SVN-BASE
字号:
#include "machine/pit.h"PIT::PIT()	: cmd_port(PIT_ports::cmd1), data_port(PIT_ports::data10), _interval(PIT_Attrib::max_interval){	interval(PIT_Attrib::max_interval);}PIT::PIT(int us)	: cmd_port(PIT_ports::cmd1), data_port(PIT_ports::data10), _interval(us){	interval(us);}PIT::PIT(PIT &pit)	: cmd_port(PIT_ports::cmd1), data_port(PIT_ports::data10), _interval(pit._interval){}PIT::~PIT(){}void PIT::interval(int us){	if (us > PIT_Attrib::max_interval)		us = PIT_Attrib::max_interval;	else if (us < 0)		us = 0;	int counter = convert(us);	_interval = us;	cmd_port.outb(PIT_Attrib::timer0 | PIT_Attrib::low_high | PIT_Attrib::mode2 | PIT_Attrib::bin);	data_port.outb(counter & 0xff);	data_port.outb( (counter>>8) & 0xff);}int PIT::interval(){	return _interval;}int PIT::convert(int us) const{	int counter = PIT_Attrib::freqence/1000*us/1000;	if(counter > PIT_Attrib::max_counter)		counter = PIT_Attrib::max_counter;	else if(counter < 1)		counter = 1;	return counter;}

⌨️ 快捷键说明

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