|
Interface: TimerController_i386 Arquivos: timercontroller_i386.h Última atualização: 23/07/2002 Autor: Luiz Henrique Shigunov |
Descrição |
| Funções para o sistema | |
|
0x00 - Alloc - Aloca um contador 0x01 - Free - Libera um contador |
0x02 - Setup - Configura um contador |
Esta página descreve a interface TimerController_i386 que trata do acesso ao controlador de contadores (timers) para a arquitetura IA32 da Intel.
O PIT é o componente responsável por fazer contagem. Os computadores compatíveis com o PC/AT têm um e, algumas vezes, dois PITs em endereços diferentes.
Cada PIT possui 3 contadores (0-2). Cada contador é independente um do outro e pode operar em 6 modos diferentes. Os modos mais utilizados no PC/AT são o 2 (gerador de pulso) e o 3 (gerador de onda quadrada).
No PC/AT os contadores são assim atribuídos:
| Contador | Usado por |
|---|---|
| 0 | ligado à IRQ0 |
| 1 | refresh da memória |
| 2 | ligado ao som do PC/AT |
O contador 1 gera uma onda quadrada responsável pelo refresh da memória em alguns sistemas. O contador 2 é usado para gerar som no PC/AT, não confundir com a placa de som!
Os contadores estão sempre habilitados. Não existe maneira de desabilitá-los.
int Alloc(Module *module, unsigned int timer);
Esta função registra o contador timer para o módulo module.
int Free(Module *module, unsigned int timer);
Esta função libera o contador timer usado por module.
int Setup(Module *module, unsigned int timer, unsigned int value, unsigned int config);
Esta função configura o contador timer usado pelo módulo module.
value é o valor a ser contado.
O valor de config deve ser o somatório de: