• We recently switched our forum platform. If you experience any issues please email support@crystalfontz.com

CFAG128128A can't initialize

thecncguy

New member
I have a CFAG128128A connected to a RCM4400w rabbit core module and can't seem to get anything happening. I have the data bus, WR, RD, CD, and CE pins connected to a logic analyzer to check for proper signal flow and all seems ok. Everthing is flowing to and from the display as it should be. I have tried Vo pin voltage from .8 to 3.5 volts.

The status checks seem to work but I am unable to get anything on the screen.

Is there any sample code or suggestions for this display. I tried sifting through the wintest code but found it too confusing.

Thanks in advance,
thecncguy
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.
 

CF Tech

Administrator
The controller is a Toshiba T6963:
http://www.crystalfontz.com/products/128128a/Toshiba_t6963CFG.pdf

You may be able to find some T6963 code for the rabbit that is already ported:

http://www.google.com/search?q=t6963+rabbit

This is the only section you need from the sample code:
Code:
ubyte control;  //value of "*port_control_address"

#define DATA_ADDR (port_data_address)
#define CONT_ADDR (port_control_address)
  
//inverted at the port
#define CLR_CE (DlPortWritePortUchar(CONT_ADDR,(control|=0x01)));Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0)
#define SET_CE (DlPortWritePortUchar(CONT_ADDR,(control&=~0x01)));Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0)

//inverted at the port
#define CLR_RD (DlPortWritePortUchar(CONT_ADDR,(control|=0x02)));Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0)
#define SET_RD (DlPortWritePortUchar(CONT_ADDR,(control&=~0x02)));Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0)
  
//straight at the port
#define SET_RW (DlPortWritePortUchar(CONT_ADDR,(control|=0x04)));Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0)
#define CLR_RW (DlPortWritePortUchar(CONT_ADDR,(control&=~0x04)));Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0)

//inverted at the port
#define SET_CD  (DlPortWritePortUchar(CONT_ADDR,(control&=~0x08)));Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0)
#define CLR_CD  (DlPortWritePortUchar(CONT_ADDR,(control|=0x08)));Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0)

//#define SDATA(x) (DlPortWritePortUchar(DATA_ADDR,(x)));(Sleep(0));(Sleep(0));(Sleep(0));(Sleep(0))
#define DATA(x) (DlPortWritePortUchar(DATA_ADDR,(x)));(Sleep(0));(Sleep(0));(Sleep(0));(Sleep(0));Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0)
#define RDATA(x) (DlPortReadPortUchar(DATA_ADDR));(Sleep(0));(Sleep(0));(Sleep(0));(Sleep(0));Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0);Sleep(0)

void DATA_W(unsigned char data)                        
{
	CLR_CD;
	CLR_CE;
	CLR_RW;
	DATA(data);
	SET_CE;
	SET_RW;
}
//
uchar DATA_R()
{
    unsigned char data;
	CLR_CD;
	CLR_CE;
	CLR_RD;
	data = RDATA(data);//LcmDataPort;
	SET_CE;
	SET_RD;
    return data;
}
//read status
uchar Read_Status()
{
    unsigned char data;
	CLR_CD;
	CLR_CE;
	CLR_RD;
	data = RDATA(data);//LcmDataPort;
	SET_CE;
	SET_RW;
    return data;
}
//
void COM_W(unsigned char command)                  
{
	SET_CD;
    CLR_CE;
	CLR_RW;
	DATA(command);
    SET_CE;
	SET_RW;
}


void CheckRWCD(void)
{
    // while((LcmReadStatus() & 0x03) != 0x03);      //
}
//
void CheckAutoWrite(void)
{
   //  while((LcmReadStatus() & 0x08) == 0);      //
}
//
void CheckScreen(void)
{      
   //  while(LcmReadStatus() & 0x40);      //
}
//
void LcmWriteData(uchar uData)                        
{
	CLR_CD;
	CLR_CE;
	CLR_RW;
	DATA(uData);
	SET_CE;
	SET_RW;
}
//
uchar LcmReadData( void )
{
    uchar uData;
	CLR_CD;
	CLR_CE;
	CLR_RD;
	uData = RDATA(uData);//LcmDataPort;
	SET_CE;
	SET_RD;
    return uData;
}
//read status
uchar LcmReadStatus( void )
{
    uchar uData;
	CLR_CD;
	CLR_CE;
	CLR_RD;
	uData = RDATA(uData);//LcmDataPort;
	SET_CE;
	SET_RW;
    return uData;
}
//
void WriteCommand(uchar Command)                  
{
	SET_CD;
    CLR_CE;
	CLR_RW;
	DATA(Command);
    SET_CE;
	SET_RW;
}
//
void DelayKey(unsigned char)
{
	Sleep(2);
}

//
void LcmWriteCommand(uchar Command)                  
{
     CheckRWCD();     
     WriteCommand(Command);
}
//write 1 data command
void LcmWriteCommandWith1Par(uchar Parameter,uchar Command)
{
     CheckRWCD();                        
     LcmWriteData(Parameter);
     CheckRWCD();
     WriteCommand(Command);
}
//WRITE 2 data COMMAND 
void LcmWriteCommandWith2Par(uchar Parameter1,uchar Parameter2,uchar Command)
{
     CheckRWCD();                       
     LcmWriteData(Parameter1);
     CheckRWCD();
     LcmWriteData(Parameter2);
     CheckRWCD();
     WriteCommand(Command);
}
//LCM INITIALIZATION
void LcmInit( void )
{
     LcmWriteCommandWith2Par(0x00,0x00,0x40);      //
     LcmWriteCommandWith2Par(LcmLengthDots/8,0x00,0x41);      //
     LcmWriteCommandWith2Par(0x00,0xC0,0x42);      //address 0x0800
     LcmWriteCommandWith2Par(LcmLengthDots/8,0x00,0x43);      
     LcmWriteCommand(0xA0);                  //CURSUR 8x1
     LcmWriteCommand(0x81);                  //Xor
     LcmWriteCommand(0x9C);                  //TURN TEXT AND GRAPHIC ON
}
It is important to get the macros at the top right "CLR_RD", "SET_RD". Those will change for every processor. Do not worry about the sleeps, that is an artifact of not having good low-level control in a user application under Windows.

Thant code should get the display initialized, porting this should put up a bitmap:
Code:
void DisplayOneBmp(uchar *puts)
{
     uchar i,j;
     uint  X=0;
     LocateXY(0,0,Graphic);
     LcmWriteCommand(0xB0);                  //auto write
     for(i=0;i<LcmWidthDots;i++)
     {
          for(j=0;j<LcmLengthDots/8;j++)
           {
                 LcmWriteData(puts[X]);
                 X++;
           }
     }
     LcmWriteCommand(0xB2);                  //inject write
}
The code in those wintest programs is what we use to power up the modules for photographs, so we know it does work, but it is typically not very pretty.
 
I have tried Vo pin voltage from .8 to 3.5 volts.
Well, that's probably what's wrong. The spec sheet sez the LCD voltage (Vdd-Vo) should be about 16 volts, so you have no contrast. With a Vdd of 5 volts, the Vo should be about -11 volts. Are you using the negative voltage generator output from the board on one end of your contrast pot?
 

thecncguy

New member
cosmicvoid,

I have a pot setup as a voltage divider between +5vdc and 0v feeding the Vo pin as you would with any standard LCD ( eg. 2 line x 16 ). I missed the 16volt spec on the data sheet. So I should arrange the pot between the -16v pin and 0v then. Well, that could very well be the problem.

CF Tech,

Thank you for the sample code! I will compare it with mine to see if I have missed something there as well. I am new to this LCD controller. Any and all code examples are much apreciated.

I will be working on the project later today and will reply to this thread with my results.

Thanks again guys!!!
thecncguy
 
So I should arrange the pot between the -16v pin and 0v then. Well, that could very well be the problem.
I am sure that IS the problem, not counting any code problems. But, as CF Tech will tell you, the Vo should be referrenced to Vdd (+5), not ground; so connect your pot from +5 to Vee (-16 V).
 

thecncguy

New member
Progress has been made!

Hi guys,

Re-wiring the Vo pot between +5v and -16v got the display finally working. I used the code examples to sort out a few remaining issues with my own code.

I have now successfully writen the letter "W" on my display. I'm so happy!


Many thanks!
thecncguy
 

CF Tech

Administrator
That is great :)

Please feel free to zip up a sample project and post it here, it might help out the next person
 

thecncguy

New member
All of the LCD related code is going into a "Library file" which gets included during compile time. Once I have this file completed, I'll post it for anyone using this display controller along a Rabbit micro and Dynamic C programming software.


thecncguy
 

Edge

New member
Similar Problem but with a CFAG240128L

I recently purchased a CFAG240128L-YYH-TZ. I am connecting it to a PIC18F4550 micro controller. I am programming it in C. And i am having major issues with Initializing it as well. I have searched through Forums and data sheets with no luck.

I am sure the contrast is set since when reset is held low, then i can see a line at random locations on the screen.

Attached is my Code so far. Any suggestions would be great!

thecncguy, I am very interested to see what you have done so far with your code, since i am unable to get my initialized at all.
 

Attachments

I don't have this display (or one with the T6963 controller), but I will make a suggestion, based on the timing diagrams in the data sheet.

I would put the RD/WR transitions inside of the CE transitions, i.e.:
LCD_CHIP_ENABLE = 0;
LCD_READ = 0;
do {} while;
LCD_READ = 1;
LCD_CHIP_ENABLE = 1;

and

LCD_CHIP_ENABLE = 0;
LCD_WRITE = 0;
delay
LCD_WRITE = 1;
LCD_CHIP_ENABLE = 1;

See if that makes any difference.

Afterthought: I would also just leave the CE active all of the time instead of switching it.
 

Osborn

New member
LCD INIT MSP430 and Touch Screen

Hi
This is my assembler code for MSP430F2274 of Texas Instruments, i hope it can help somebody and i have a question about the touch screen conection, because I use the TSC2007 with terminals X+ Y+ X- Y- and i don't know how to connect it with the LCD

NAME main ; module name

PUBLIC main ; make the main label vissible
; outside this module

#include "msp430x22x4.h" ; #define controlled include file

#define PAUSA R15
#define CE 01H
#define CD 02H
#define RES 04H

ORG 0200H
DATO DS 2
COORD DS 2

;-------------------------------------------------------------------------------
ORG 0x8000 ;Inicio del programa
;-------------------------------------------------------------------------------
main
RESET MOV.W #0x600,SP ; Inicialización del stackpointer
MOV.W #WDTPW+WDTHOLD,&WDTCTL ; Watchdog timer detenido
MOV.B &CALBC1_16MHZ,&BCSCTL1 ; DCO en 16 MHz
MOV.B &CALDCO_16MHZ,&DCOCTL

MICRO_INIT MOV.B #0FFH,&P1DIR ; Configuración de los puertos
MOV.B #0FFH,&P2DIR
MOV.B #0FFH,&P3DIR
MOV.B #0FFH,&P4DIR

VAL_INI CLR.B &P4OUT
BIS.B #CE,&P2OUT
BIS.B #RES,&P2OUT


OTROS_INIT CALL #LCD_INIT ;Inicialización LCD Gráfica

;-------------------------------------------------------------------------------
;PROGRAMA PRINCIPAL
;-------------------------------------------------------------------------------
PRINCIPAL MOV #000H,COORD
CALL #COORDENAD
MOV #0C00H,R10
BORRAR MOV.B #000H,&P4OUT
CALL #DAT
MOV.B #0C0H,&P4OUT
CALL #COMANDO
DEC R10
JNZ BORRAR

MOV #1400H,R10
PONER MOV.B #000H,&P4OUT
CALL #DAT
MOV.B #0C0H,&P4OUT
CALL #COMANDO
DEC R10
JNZ PONER

MOV #01C2H,COORD
CALL #COORDENAD
MOV #LETRERO1,R4
CALL #IMP_LET

GRAFICO MOV #0C82H,COORD
CALL #COORDENAD
CLR R6
CLR R7
MOV #POLI,R5
SIGUE MOV.B @R5,&P4OUT
CMP #100,R6
JEQ FIN_P
CMP #09H,R7
JEQ AJUSTE
CALL #DAT
MOV.B #0C0H,&P4OUT
CALL #COMANDO
INC R7
INC R5
JMP SIGUE

AJUSTE CLR R7
INC R6
ADD #1EH,COORD
CALL #COORDENAD
CALL #TIEMPOL
JMP SIGUE

FIN_P CALL #PAUSA2S

MOV #01C2H,COORD
CALL #COORDENAD
MOV #1EH,R7
BORRA1 MOV.B #00H,&P4OUT
CALL #DAT
MOV.B #0C0H,&P4OUT
CALL #COMANDO
CALL #TIEMPOL
DEC R7
JNZ BORRA1

MOV #0C82H,COORD
CALL #COORDENAD
CLR R6
CLR R7
MOV #POLI,R5
SIGUE2 MOV.B #00H,&P4OUT
CMP #100,R6
JEQ JUMP
CMP #09H,R7
JEQ AJUSTE2
CALL #DAT
MOV.B #0C0H,&P4OUT
CALL #COMANDO
INC R7
JMP SIGUE2

AJUSTE2 CLR R7
INC R6
ADD #1EH,COORD
CALL #COORDENAD
CALL #TIEMPOL
JMP SIGUE2

JUMP JMP JUMP



;-------------------------------------------------------------------------------
;SUBRUTINAS
;-------------------------------------------------------------------------------

LCD_INIT BIC.B #RES,&P2OUT
MOV #100,PAUSA
NEXT DEC PAUSA
JNZ NEXT
BIS.B #RES,&P2OUT
MOV.B #080H,&P4OUT
CALL #COMANDO

MOV.B #000H,&P4OUT
CALL #DAT
MOV.B #00CH,&P4OUT
CALL #DAT
MOV.B #042H,&P4OUT
CALL #COMANDO

MOV.B #030,&P4OUT
CALL #DAT
MOV.B #000H,&P4OUT
CALL #DAT
MOV.B #043H,&P4OUT
CALL #COMANDO

MOV.B #000H,&P4OUT
CALL #DAT
MOV.B #000H,&P4OUT
CALL #DAT
MOV.B #040H,&P4OUT
CALL #COMANDO

MOV.B #030,&P4OUT
CALL #DAT
MOV.B #000H,&P4OUT
CALL #DAT
MOV.B #041H,&P4OUT
CALL #COMANDO

MOV.B #09CH,&P4OUT
CALL #COMANDO

MOV.B #081H,&P4OUT
CALL #COMANDO

RET


COORDENAD MOV.B COORD,&P4OUT
CALL #DAT
SWPB COORD
MOV.B COORD,&P4OUT
CALL #DAT
MOV.B #024H,&P4OUT
CALL #COMANDO
SWPB COORD
RET


IMP_LET MOV.B @R4+,DATO
AND #00FFH,DATO
CMP #080H,DATO
JEQ Salir
MOV.B DATO,&P4OUT
CALL #DAT
MOV.B #0C0H,&P4OUT
CALL #COMANDO
BR #IMP_LET
Salir RET

DAT CALL #TIEMPO
BIC.B #CD,&P2OUT
CALL #CHIP_E
RET

COMANDO CALL #TIEMPO
BIS.B #CD,&P2OUT
CALL #CHIP_E
RET



CHIP_E NOP
NOP
NOP
BIC.B #CE,&P2OUT
NOP
NOP
NOP
NOP
NOP
NOP
BIS.B #CE,&P2OUT
NOP
NOP
NOP
RET

TIEMPO MOV #16,R9
T1 DEC R9
JNZ T1
RET

TIEMPOL MOV #60000,R9
T2 DEC R9
JNZ T2
RET

PAUSA2S MOV #1000,R11
P3 MOV #1000,R10
P2 MOV #8,R9
P1 DEC R9
JNZ P1
DEC R10
JNZ P2
DEC R11
JNZ P3
RET
;-------------------------------------------------------------------------------
;TABLAS
;-------------------------------------------------------------------------------
LETRERO1 DB 29H,'NSTITUTO',00H,30H,'OLIT',62H,'CNICO',00H,2EH,'ACIONAL',80H

POLI DB 00H,00H,04H,00H,00H,00H,01H,0F8H,00H
DB 00H,00H,3FH,00H,00H,00H,01H,0EEH,00H
DB 00H,01H,0B9H,0C0H,00H,00H,61H,0E3H,00H
DB 00H,03H,0B8H,0F0H,00H,03H,0F9H,0E1H,00H
DB 00H,1BH,0B8H,0B8H,00H,03H,0E7H,0E1H,00H
DB 00H,0DBH,0B8H,0A6H,00H,03H,0F3H,0E1H,00H
DB 01H,0DBH,0B8H,0AAH,07H,83H,0F1H,0E1H,00H
DB 01H,0DBH,0B8H,0AAH,03FH,0E3H,0F9H,0E1H,00H
DB 01H,0DBH,0A6H,0AAH,0FFH,0BBH,0FDH,0E1H,00H
DB 01H,0DBH,019H,0BAH,0FFH,08BH,0FFH,0E1H,00H;10
DB 01H,0D0H,0B8H,0E6H,0F7H,08BH,0FFH,0E1H,00H
DB 01H,083H,0B8H,0E6H,0E3H,08BH,0FFH,0E1H,00H
DB 00H,05BH,0B8H,0E1H,0E3H,08BH,0FFH,0E1H,00H
DB 01H,0DBH,0B8H,0E0H,0E3H,08BH,0FFH,0E1H,00H
DB 01H,0DBH,0B8H,0E0H,0E3H,08BH,0DFH,0E1H,00H
DB 01H,0DBH,0B8H,0E0H,0F7H,08BH,0CFH,0E1H,00H
DB 01H,0DBH,0A6H,0E0H,0FFH,08BH,0C7H,0E1H,00H
DB 01H,0DBH,009H,0E0H,0FFH,08BH,0C3H,0E1H,00H
DB 01H,0D0H,0B8H,0E0H,0FEH,00BH,0C3H,0E1H,00H
DB 01H,083H,0B8H,0E0H,0F8H,01BH,0C1H,0E1H,00H;20
DB 00H,01BH,0B8H,0E0H,0E6H,01BH,0C0H,0E9H,00H
DB 01H,0DBH,0B8H,0E0H,0E1H,073H,0C0H,0FDH,00H
DB 01H,0DBH,0B8H,0E0H,0E1H,003H,0CFH,0FFH,00H
DB 01H,0DBH,0B8H,0E0H,0E1H,007H,0FFH,0FFH,080H
DB 01H,0DBH,0B8H,0E0H,0E1H,03FH,0FCH,003H,0C0H;25
DB 01H,0DBH,0A6H,0E0H,0E3H,0FFH,0C0H,0C0H,0C0H
DB 01H,0D8H,019H,0E1H,0FFH,0F8H,007H,0E1H,0C0H
DB 01H,083H,0B8H,0E7H,0FFH,080H,03CH,01FH,080H
DB 00H,05BH,0B8H,0FFH,0F0H,00BH,0FEH,01CH,000H
DB 05H,0DBH,0B9H,0FFH,000H,0DBH,0FEH,03FH,000H;30
DB 05H,0DBH,0B9H,0C0H,001H,09BH,0FEH,07CH,0C0H
DB 01H,0DBH,0B0H,014H,007H,0B5H,0FFH,0FEH,020H
DB 01H,0DBH,0B9H,0D4H,0FFH,034H,0FFH,0FBH,090H
DB 01H,0DBH,0A1H,0D7H,003H,068H,0FFH,0F0H,070H
DB 01H,0D2H,009H,0F4H,007H,068H,07FH,0E0H,020H;35
DB 00H,009H,0B9H,01AH,006H,050H,07FH,0E0H,040H
DB 09H,0DBH,0B9H,0F9H,00EH,0D0H,07FH,0B8H,080H
DB 1DH,0DBH,0B9H,00EH,0ECH,0A0H,03FH,08FH,000H
DB 1DH,0DBH,0B9H,0FEH,01DH,0A0H,03FH,083H,000H
DB 0DH,0DBH,0B8H,097H,0B9H,040H,03FH,09FH,0E0H;40
DB 05H,0DBH,0B8H,09BH,0FBH,040H,03FH,0FFH,018H
DB 01H,0DBH,0BFH,0FFH,0F2H,080H,03FH,0FFH,008H
DB 01H,0D8H,039H,098H,0FEH,0C0H,03FH,0FFH,0C8H
DB 00H,001H,0C6H,0F7H,07DH,0F0H,03FH,0FCH,078H
DB 01H,0DFH,039H,097H,0DEH,0FEH,03FH,0F8H,038H;45
DB 7DH,0D8H,0FCH,0AFH,04EH,071H,0FFH,0EFH,0E0H
DB 7DH,0E7H,083H,06CH,0E7H,07EH,01FH,0C1H,000H
DB 7DH,09BH,0E8H,093H,0FFH,0FFH,0FFH,0C1H,000H
DB 3EH,07BH,0BFH,0FFH,0C0H,01FH,0EFH,0C1H,000H
DB 0DH,0DBH,0BFH,000H,03FH,0FFH,0D7H,0FFH,0E0H;50
DB 13H,0FFH,0FFH,0FFH,0F7H,0FFH,0BBH,0FFH,038H
DB 3FH,0CFH,0F0H,0FFH,0F3H,0FFH,0BBH,0FFH,008H
DB 05H,0CFH,0FEH,007H,0F0H,001H,05DH,0FFH,088H
DB 0CH,0C0H,001H,0F3H,0F3H,0FEH,0FEH,0F8H,078H
DB 16H,060H,006H,093H,0E7H,0FFH,01EH,0FFH,080H;55
DB 6FH,02FH,0FCH,09FH,0E7H,071H,01EH,0C0H,080H
DB 0EFH,0AFH,004H,0FFH,0E7H,071H,01EH,0C0H,080H
DB 0EFH,0AFH,01CH,083H,0C7H,061H,01EH,0C0H,080H
DB 2FH,0AFH,034H,0F0H,0D6H,0E1H,01EH,0FFH,080H
DB 17H,0AFH,0E2H,00EH,072H,0E1H,01EH,0F0H,040H;60
DB 13H,0AFH,0C1H,003H,0BAH,0C1H,03EH,0F8H,030H
DB 13H,0AFH,000H,0F0H,07BH,041H,03EH,0FFH,0F8H
DB 13H,0A7H,028H,0FEH,01DH,041H,03EH,0FEH,008H
DB 17H,0A6H,051H,0E7H,08DH,061H,03EH,0DEH,008H
DB 1FH,0B6H,059H,0ECH,046H,0A1H,03EH,0C3H,0F0H;65
DB 2FH,0B6H,07FH,0EFH,0B6H,0A1H,03EH,0C3H,000H
DB 6FH,0B2H,0D3H,0EDH,056H,0D1H,07EH,0FEH,000H
DB 6DH,0B2H,07FH,0FFH,097H,051H,07EH,0FFH,000H
DB 69H,0BBH,057H,0D8H,017H,069H,07EH,0E1H,080H
DB 2FH,0BBH,007H,0DCH,053H,0A9H,07EH,0F0H,0C0H;70
DB 11H,0B9H,087H,0F8H,093H,0A9H,0FEH,0FFH,0E0H
DB 11H,0BDH,087H,041H,021H,0B5H,0FEH,0F8H,020H
DB 13H,0BCH,0CEH,0FEH,0C1H,0D5H,0FEH,078H,020H
DB 17H,0BCH,0F0H,081H,080H,0BAH,0FEH,01FH,0E0H
DB 17H,0BEH,06EH,0FEH,000H,0EAH,0FEH,0F8H,000H;75
DB 17H,0DEH,05DH,000H,000H,0EEH,0FEH,0F8H,000H
DB 17H,05FH,03BH,000H,000H,076H,0FEH,08CH,000H
DB 16H,05FH,0B3H,000H,000H,076H,0FEH,086H,000H
DB 13H,0FFH,097H,000H,000H,07EH,0FEH,083H,000H
DB 10H,05FH,0C7H,000H,000H,07EH,0F6H,0C1H,000H;80
DB 10H,07FH,0E7H,080H,000H,07EH,0E2H,0FFH,000H
DB 10H,0BFH,0F1H,0C0H,000H,0FEH,0E1H,0C1H,000H
DB 10H,0BFH,0F8H,0F0H,003H,0FEH,0FFH,0C3H,000H
DB 07FH,0F3H,0FCH,0EFH,01FH,0FEH,0E1H,0FEH,000H
DB 0B0H,051H,0FEH,00FH,0F3H,0FEH,0F1H,040H,000H;85
DB 0DFH,09FH,0FFH,080H,00FH,0FEH,0F1H,060H,000H
DB 60H,063H,0FFH,0F0H,0EFH,0FEH,0F9H,020H,000H
DB 1FH,083H,0FFH,0FFH,0FFH,0FDH,0FDH,030H,000H
DB 00H,007H,0DFH,0FFH,0FFH,0FAH,003H,0F0H,000H
DB 00H,007H,08FH,0FFH,0FFH,0FDH,0FFH,090H,000H;90
DB 00H,007H,087H,0FFH,0FFH,0B9H,001H,060H,000H
DB 00H,003H,08FH,0FFH,0FEH,03CH,0FEH,040H,000H
DB 00H,003H,0FFH,01FH,0FFH,0FEH,000H,080H,000H
DB 00H,000H,00FH,01EH,01EH,01FH,0FFH,000H,000H
DB 00H,000H,00FH,01EH,01EH,00EH,030H,000H,000H;95
DB 00H,000H,00EH,01EH,01EH,00FH,0C0H,000H,000H
DB 00H,000H,007H,0FEH,01EH,008H,000H,000H,000H
DB 00H,000H,000H,01EH,01EH,008H,000H,000H,000H
DB 00H,000H,000H,00FH,0FEH,018H,000H,000H,000H
DB 00H,000H,000H,000H,00FH,0F0H,000H,000H,000H

;-------------------------------------------------------------------------------
;VECTORES DE INTERRUPCION
;-------------------------------------------------------------------------------
ORG 0FFFEH ; MSP430 RESET Vector
DW RESET ;
END
END MAIN
 
I can not help you with the touchscreen, but I wonder if you are able to write any data to the screen. The reason I ask is that your code only seems to deal with the /CE and C/D control signals, but nothing about using /WR or /RD. This is very strange, and I wonder how you have /WR and /RD connected.
 

Osborn

New member
Touch

The code is working correctly, some pictures here, but I wanted to share it with the forum.

And what I would be missing the connection with the touch screen
:)






(Edit by admin: Embedded larger photos.)
 

Attachments

Top