最近想用LM3S811驱动一块3.2寸TFT,控制器为ssd1289,程序能通过,但是有几个问题:
1.我模拟16位并口的,感觉刷屏有点慢,能有更好的算法提高响应速度吗?
2.当我想显示图片或用汉字字库时就发现内存不够了,能通过增加内存芯片或SD卡的方法解决吗?
请各位帮帮忙啊
#define D0 GPIO_PIN_5
#define D1 GPIO_PIN_7
#define D2 GPIO_PIN_0
#define D3 GPIO_PIN_6
#define D4 GPIO_PIN_2
#define D5 GPIO_PIN_4
#define D6 GPIO_PIN_4
#define D7 GPIO_PIN_1
#define D8 GPIO_PIN_0
#define D9 GPIO_PIN_3
#define D10 GPIO_PIN_2
#define D11 GPIO_PIN_5
#define D12 GPIO_PIN_0
#define D13 GPIO_PIN_1
#define D14 GPIO_PIN_1
#define D15 GPIO_PIN_3
void LCD_DATA(uint data) //模拟并口发送数据
{
if((data >> 0) & 0x01) GPIOPinWrite(PC, D0, D0);
else GPIOPinWrite(PC, D0, ~D0);
if((data >> 1) & 0x01) GPIOPinWrite(PC, D1, D1);
else GPIOPinWrite(PC, D1, ~D1);
if((data >> 2) & 0x01) GPIOPinWrite(PA, D2, D2);
else GPIOPinWrite(PA, D2, ~D2);
if((data >> 3) & 0x01) GPIOPinWrite(PC, D3, D3);
else GPIOPinWrite(PC, D3, ~D3);
if((data >> 4) & 0x01) GPIOPinWrite(PA, D4, D4);
else GPIOPinWrite(PA, D4, ~D4);
if((data >> 5) & 0x01) GPIOPinWrite(PC, D5, D5);
else GPIOPinWrite(PC, D5, ~D5);
if((data >> 6) & 0x01) GPIOPinWrite(PA, D6, D6);
else GPIOPinWrite(PA, D6, ~D6);
if((data >> 7) & 0x01) GPIOPinWrite(PA, D7, D7);
else GPIOPinWrite(PA, D7, ~D7);
if((data >> 8) & 0x01) GPIOPinWrite(PD, D8, D8);
else GPIOPinWrite(PD, D8, ~D8);
if((data >> 9) & 0x01) GPIOPinWrite(PA, D9, D9);
else GPIOPinWrite(PA, D9, ~D9);
if((data >> 10) & 0x01) GPIOPinWrite(PD, D10, D10);
else GPIOPinWrite(PD, D10, ~D10);
if((data >> 11) & 0x01) GPIOPinWrite(PA, D11, D11);
else GPIOPinWrite(PA, D11, ~D11);
if((data >> 12) & 0x01) GPIOPinWrite(PB, D12, D12);
else GPIOPinWrite(PB, D12, ~D12);
if((data >> 13) & 0x01) GPIOPinWrite(PD, D13, D13);
else GPIOPinWrite(PD, D13, ~D13);
if((data >> 14) & 0x01) GPIOPinWrite(PB, D14, D14);
else GPIOPinWrite(PB, D14, ~D14);
if((data >> 15) & 0x01) GPIOPinWrite(PD, D15, D15);
else GPIOPinWrite(PD, D15, ~D15);
}
此帖出自
小平头技术问答
2、从贴出的程序看太多的判断语句,编译会变后会很长周期,建议改为对字的操作,16bit用一个for循环移位输出。
但你16bit的脚使用很多端口,且不连续,这样会降低性能,哪怕改成8bit连续的可能还快点。如果连续就可以像
LCD_Bus_Write_Byte( Data>>8 );
LCD_Bus_Write_Byte( Data );
这样一次输出。否则就要加太多处理。
3、汉字库差不多都200K了,图片很小的可以放到flash中,最好还是扩SD卡,SPI接口就行
愚见望指正
[ 本帖最后由 shower.xu 于 2012-1-18 08:35 编辑 ]
这个要看你LCD的驱动IC资料,一般支持两种可选。数据一般是低8bit有效,驱动IC资料应该有讲,一般自刷新,不需要锁存。
一周热门 更多>