[an error occurred while processing this directive]
|
void isr_dma(void* context, alt_u32 id)
{
np_dma * pdma = (np_dma *) context;
if(pdma->np_dmastatus & np_dmastatus_done_mask)
{
pdma->np_dmacontrol = 0;
pdma->np_dmastatus = 0;
pdma->np_dmalength = ScrWidth*ScrHeight*sizeof(int);
dma_draw=get_active_page();
pdma->np_dmareadaddress = (int) dma_draw;
pdma->np_dmawriteaddress = (int) na_vga;
activepage++;
if (activepage==3) activepage = 0;
pdma->np_dmacontrol = np_dmacontrol_go_mask | np_dmacontrol_i_en_mask | np_dmacontrol_word_mask | np_dmacontrol_reen_mask | np_dmacontrol_wcon_mask | np_dmacontrol_leen_mask;
}
}
int main(void)
{
int* scr2;
np_dma * pdma = na_dma;
alt_irq_register(na_dma_irq,(void*) pdma, isr_dma);
.......
pdma->np_dmacontrol = 0;
pdma->np_dmastatus = 0;
pdma->np_dmalength = ScrWidth*ScrHeight*sizeof(int);
pdma->np_dmareadaddress = (int) dma_draw;
pdma->np_dmawriteaddress = (int) na_vga;
pdma->np_dmacontrol = np_dmacontrol_go_mask | np_dmacontrol_i_en_mask | np_dmacontrol_word_mask | np_dmacontrol_reen_mask | np_dmacontrol_wcon_mask | np_dmacontrol_leen_mask;
}
E-mail: info@telesys.ru