文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>1位色 60Hz 刷新 640*480分辨率 ATMEL LCD

1位色 60Hz 刷新 640*480分辨率 ATMEL LCD

时间:2009-05-22  来源:tdh2002

#include <AT91SAM9263.H> 
/***
tandenghua 1位色 60Hz 刷新 640*480分辨率
***/

// ConfigurePins();
/**
((AT91PS_PIO)(0xFFFFF600))->PIO_IDR= 0x0dcdcfCf;
*((unsigned int *)(0xFFFFF600+0x00000044))=0x0dcdcfCf;
*/
AT91C_BASE_PIOC->PIO_IDR= 0x0dcdcfC;
AT91C_BASE_PIOC->PIO_PPUDR= 0x0dcdcfCf;
AT91C_BASE_PIOC->PIO_ASR= 0x0dcdcfCf;
AT91C_BASE_PIOC->PIO_PDR= 0x0dcdcfCf;

AT91C_BASE_PIOC->PIO_IDR= 0x00021000;
AT91C_BASE_PIOC->PIO_PPUDR= 0x00021000;
AT91C_BASE_PIOC->PIO_BSR= 0x00021000;
AT91C_BASE_PIOC->PIO_PDR= 0x00021000;

AT91C_BASE_PIOB->PIO_IDR= 0x1<<9;
AT91C_BASE_PIOB->PIO_PPUDR= 0x1<<9;
AT91C_BASE_PIOB->PIO_BSR= 0x1<<9;
AT91C_BASE_PIOB->PIO_PDR= 0x1<<9; /*configure pins by tt*/

// Enable peripheral clock
AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_LCDC;

// Disable the LCD and the DMA
AT91C_BASE_LCDC->LCDC_DMACON = 0;
AT91C_BASE_LCDC->LCDC_PWRCON = 0 << 1;
// Configure the LCD controller
AT91C_BASE_LCDC->LCDC_LCDCON1 = 1<< 12;
AT91C_BASE_LCDC->LCDC_LCDCON2=0x80008602;
#if 0
AT91C_BASE_LCDC->LCDC_LCDCON2=((AT91C_BASE_LCDC->LCDC_LCDCON2)&(~AT91C_LCDC_DISTYPE))|AT91C_LCDC_DISTYPE_TFT;
AT91C_BASE_LCDC->LCDC_LCDCON2=((AT91C_BASE_LCDC->LCDC_LCDCON2)&(~AT91C_LCDC_SCANMOD))|AT91C_LCDC_SCANMOD_SINGLESCAN;
AT91C_BASE_LCDC->LCDC_LCDCON2=((AT91C_BASE_LCDC->LCDC_LCDCON2)&(~AT91C_LCDC_PIXELSIZE))|AT91C_LCDC_PIXELSIZE_ONEBITSPERPIXEL; /*几位色*/
AT91C_BASE_LCDC->LCDC_LCDCON2=((AT91C_BASE_LCDC->LCDC_LCDCON2)&0xFFFFE0FF)|AT91C_LCDC_INVVD_NORMALPOL|AT91C_LCDC_INVFRAME_INVERTEDPOL|AT91C_LCDC_INVLINE_INVERTEDPOL|AT91C_LCDC_INVCLK_NORMALPOL|AT91C_LCDC_INVDVAL_NORMALPOL;
AT91C_BASE_LCDC->LCDC_LCDCON2=((AT91C_BASE_LCDC->LCDC_LCDCON2)&(~AT91C_LCDC_CLKMOD))|AT91C_LCDC_CLKMOD_ALWAYSACTIVE;
AT91C_BASE_LCDC->LCDC_LCDCON2=((AT91C_BASE_LCDC->LCDC_LCDCON2)&(~AT91C_LCDC_MEMOR))|AT91C_LCDC_MEMOR_LITTLEIND;
#endif
AT91C_BASE_LCDC->LCDC_LCDFRCFG = 0x4FE001DF; /*set size ((640 - 1) << 21) | (480 - 1) */

// Configure timings
AT91C_BASE_LCDC->LCDC_TIM1 = 0x0201210A;/* vfp | (vbp << 8) | ((vpw-1) << 16)| ((vhdly-1) << 24); */
AT91C_BASE_LCDC->LCDC_TIM2 = 0x0F003E2F;/*(hbp-1) | ((hpw-1) << 8) | ((hfp-1) << 24)*/

// Configure contrast (TODO functions)
AT91C_BASE_LCDC->LCDC_CTRSTCON &= ((AT91C_BASE_LCDC->LCDC_CTRSTCON)&(~AT91C_LCDC_PS))|AT91C_LCDC_PS_NOTDIVIDED;
AT91C_BASE_LCDC->LCDC_CTRSTCON &= ((AT91C_BASE_LCDC->LCDC_CTRSTCON)&(~AT91C_LCDC_POL))|AT91C_LCDC_POL_POSITIVEPULSE;
AT91C_BASE_LCDC->LCDC_CTRSTVAL = 0x80; /*LCD_SetContrastValue*/
AT91C_BASE_LCDC->LCDC_CTRSTCON |= AT91C_LCDC_ENA_PWMGEMENABLED;

AT91C_BASE_LCDC->LCDC_LUT_ENTRY[0]=0x0;
AT91C_BASE_LCDC->LCDC_LUT_ENTRY[1]=0xffffffff;

AT91C_BASE_LCDC->LCDC_FRMCFG =0x00002580;/*0x00002580; (640 * 480* 1)/32 | (AT91C_BASE_LCDC->LCDC_FRMCFG & 0xFF000000);*/
AT91C_BASE_LCDC->LCDC_FIFO = 0x000007DD;

AT91C_BASE_LCDC->LCDC_BA1 =0x22000000;

AT91C_BASE_LCDC->LCDC_DMACON =AT91C_LCDC_DMAEN|AT91C_LCDC_DMA2DEN;

AT91C_BASE_LCDC->LCDC_PWRCON = AT91C_LCDC_PWR | (0x0c << 1);

AT91C_BASE_LCDC->LCDC_DMACON =0x19;
相关阅读 更多 +
排行榜 更多 +
保卫萝卜4内购正式版

保卫萝卜4内购正式版

休闲益智 下载
变身快快跑

变身快快跑

休闲益智 下载
丰新教育

丰新教育

学习教育 下载