📄 pit.cc.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 + -