Hi I am interfacing LPC2148 ARM7 with LCD controller S1D13781 but i am using 8 bit direct mode as specified in LCD controller Datasheet and send all configure bits to registers but finall y i am not able to generate HS and VS if any one use S1D13781 with any of microcontroller please send me any details for configuring register
i am attaching code if any changes please let me know
#include<Lpc214x.h> /* Address bus and Control Lines is connected as Below of Port P0 */ /* AB18 AB17 AB16 AB15||||AB14 AB13 AB12 AB11||||AB10 AB9 AB8 AB7||||AB6 AB5 AB4 AB3||||AB2 AB1 AB0 X||||TE WR RD CS */ /* | | | | | | | | | | | | | | | | | | | | | | | | */ /* 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 */ /*---------------------------------------------------------------------------------------------------------/* | | | */ /*---------------------------------------------------------------------------------------------------------/* 0 1 0 */ /* To Write Register Address */ /*---------------------------------------------------------------------------------------------------------/* 1 0 0 */ /* To Read Data of Register*/ /* Data bus is connected as Below of Port P1 */ /* DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 */ /* | | | | | | | | */ /* 23 22 21 20 19 18 17 16 */ void write(unsigned char ); void LCD_Delay(unsigned int ); void LCD_Init(void); int read(); #define CS_Set IOSET0 = 0x00000001; #define CS_Clr IOCLR0 = 0x00000001; #define RD_Set IOSET0 = 0x00000002; #define RD_Clr IOCLR0 = 0x00000002; #define WR_Set IOSET0 = 0x00000004; #define WR_Clr IOCLR0 = 0x00000004; #define TE_DB8_INPUT IODIR0 = 0x00000008; int read() { unsigned int Data; IOCLR1 = 0xFFFFFFFF; WR_Set; // Write High RD_Clr; // Read Low CS_Clr; // CS Low // IOSET1 = Data << 16; Data = IOPIN1; LCD_Delay(1); RD_Set; // Read High CS_Set; // CS High IOCLR1 = 0x00FF0000; // Clear Data Pins return Data; } void write(unsigned char Data) { IOSET1 = Data << 16; RD_Set; // Read Low WR_Clr; // Write Low CS_Clr; // CS Low LCD_Delay(1); WR_Set; // Write High CS_Set; // CS High IOCLR1 = 0x00FF0000; // Clear Data Pins } void LCD_Delay(unsigned int Time) { unsigned int i,j; for(i=0;i<=Time;i++) for(j=0;j<1;j++); } void LCD_Init(void) { unsigned int val =0; IOSET0 = 0x00C10050; val = read(); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C100D0; /* 0x60806 */ write(0x00); write(0x01); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10090; /* 0x60804 */ write(0x00); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10210; /* 0x60810 */ write(0x00); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10250; /* 0x60812 */ write(0x11); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10290; /* 0x60814 */ write(0x2C); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C102D0; /* 0x60816 */ write(0x08); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10090; /* 0x60804 */ write(0x03); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10210; /* 0x60810 */ write(0x01); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10410; /* 0x608120 */ write(0x2D); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10450; /* 0x60822 */ write(0x18); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10490; /* 0x60824 */ write(0x28); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C104D0; /* 0x60826 */ write(0x03); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10510; /* 0x60828 */ write(0xF0); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10550; /* 0x6082A */ write(0x02); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10590; /* 0x6082C */ write(0x1E); IOSET0 = 0X00C105D0; /* 0x6082E */ write(0x00); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10610; /* 0x60830 */ write(0x03); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10650; /* 0x60832 */ write(0x00); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10690; /* 0x60834 */ write(0x00); IOCLR0 = 0xFFFFFFF7; } void main(void) { IODIR0 = 0xFFFFFFF7; /* Set LCD pin as out put P0.6 as Input*/ IOCLR0 = 0xFFFFFFF7; /* Clear all Used Pins */ IODIR1 = 0xFFFFFFFF; IOCLR1 = 0xFFFFFFFF; IODIR1 = 0xFF00FFFF; RD_Set; // Read High WR_Set; // Write High CS_Set; // CS High LCD_Init(); IOCLR0 = 0xFFFFFFF7; IOSET0 = 0X00C10890; /* 0x60842 */ while(1) { write(0xFF); LCD_Delay(1); write(0xff); LCD_Delay(1); write(0xFF); LCD_Delay(1); write(0x00); LCD_Delay(1); write(0x00); LCD_Delay(1); write(0x00); LCD_Delay(1); } }