We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Dear All The computer output 8 bits data of P1.24~P1.31, and I save the data on the buffer(EPP_Data); then the data was input to LCD driver IC via the P0.0~P0.7.
Problem: My computer output 0x11 via P1.24~P1.31 and use scope to check computer output data is correctly show 0x11, but the data (0x11) via P0.0~P0.7 into LCD driver IC, the data somehow becomes inaccurate(and it shows 0x61). I wrote my program as follows,and I wonder if any mistake?
//Pin Define// #define CS P1_16 #define WR P1_17 #define RD P1_18 #define RS P1_19
#define EPP_WR P1_20 #define EPP_AS P1_21 #define EPP_DS P1_22 #define EPP_WAIT P1_23
#define EPP_Data0 P1_24 #define EPP_Data1 P1_25 #define EPP_Data2 P1_26 #define EPP_Data3 P1_27 #define EPP_Data4 P1_28 #define EPP_Data5 P1_29 #define EPP_Data6 P1_30 #define EPP_Data7 P1_31
void main(void) { uint32 EPP_Data;
PINSEL0 = 0x00000000; PINSEL1 = 0x00000000; PINSEL2 = 0x00000000;
IO0DIR = 0xFFFFFFFF; IO1DIR = 0x008FFFFF;
while(1) { IO1CLR = EPP_WAIT; if((IO1PIN & EPP_WR ) == 0) { if((IO1PIN & EPP_AS) == 0) { EPP_Data = IO1PIN & 0xFF000000; EPP_Data = (EPP_Data >> 24);
IO0CLR = 0x000000FF; IO1CLR = CS; IO1CLR = RS; IO1SET = RD; IO1CLR = WR; IO0SET = EPP_Data; IO1SET = WR; IO1SET = CS; IO1SET = EPP_WAIT; } } } }
on P0.0 - P0.7 there are some I2C pins which do not have an on-chip pull up. You need pull-up resistors on those pins. Did you add them?