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: