Intel 386 Manual do Utilizador Página 392

  • Descarregar
  • Adicionar aos meus manuais
  • Imprimir
  • Página
    / 691
  • Índice
  • MARCADORES
  • Avaliado. / 5. Com base em avaliações de clientes
Vista de página 391
12-57
DMA CONTROLLER
*****************************************************************************/
int SetDMAXferCount(int nChannel, DWORD lCount)
{
WORD addrDMAByc0_1;
WORD addrDMAByc2;
/*Check input*/
if ( (nChannel != DMA_Channel0) && (nChannel != DMA_Channel1) )
return ERR_BADINPUT;
/*Set registers to correct channel*/
addrDMAByc0_1 = (nChannel == DMA_Channel0 ? DMA0BYC0_1 : DMA1BYC0_1);
addrDMAByc2 = (nChannel == DMA_Channel0 ? DMA0BYC2 : DMA1BYC2);
_SetEXRegByte(DMACLRBP, 0x0); /* Clear the byte pointer flip-flop */
/* Write count, bits 0-7 */
_SetEXRegByte(addrDMAByc0_1, (BYTE) ( lCount & 0xFF));
/* Write count, bits 8-15 */
_SetEXRegByte(addrDMAByc0_1, (BYTE) ((lCount >> 8) & 0xFF));
/* Write count, bits 16-23 */
_SetEXRegByte(addrDMAByc2, (BYTE) ((lCount >> 16) & 0xFF));
return ERR_NONE;
}
/*****************************************************************************
InitDMA:
Description:
Enables the DMA and initializes settings independent of the
two channels:
bus arbitration--set to no rotation, external bus master
request(HOLD) assigned to lowest priority level
EOP# sampling--set to asynch. (no effect when DMA is used
with internal peripherals)
DRQn sampling--set to synch. (no effect when DMA is used
with internal peripherals)
Parameters:
None
Returns:
None
Assumptions:
None
Vista de página 391
1 2 ... 387 388 389 390 391 392 393 394 395 396 397 ... 690 691

Comentários a estes Manuais

Sem comentários