Zakupiłem wyświetlacz lcd 256x128 z firmy Artronic oparty na sterowniku T6963c. Szukam odpowiedzi na pytanie dlaczego mój sterownik nie zwraca statusu poprzez funkcję GLCD_ChceckStatus(). Czy jest to spowodowane złym podłączeniem wyświetlacza do Atmegi32, przez co sam sterownik jest uśpiony?
Oprogramowanie pochodzi z strony: http://en.radzio.dxp.pl/t6963/
1 - A - GND
2 - K - 5V
3 - Vout - nie podłączone
4 - V0 -regulowane napięcie ujemne, własne rozwiązanie.
5 - PD -nie podłączone
6 - VSS - GND
7 - VDD - 5V
8 - VEE - nie podłączone
9 - /WR - PC0
10 - /RD - PC1
11 - /CE - PC2
12 - C/D - PC3
13 - /RST - PC4
14-21 - DB0-DB7 - PA0-PA7
22 - FS - PC5
Poniższa funkcja nie zwraca mi żadnej wartości przez zmienną tmp. Czy sterownik jest uśpiony? return tmp
Poniżej przedstawiłem przykładowe użycie funkcji GLCD_ChceckStatus().
Oprogramowanie pochodzi z strony: http://en.radzio.dxp.pl/t6963/
1 - A - GND
2 - K - 5V
3 - Vout - nie podłączone
4 - V0 -regulowane napięcie ujemne, własne rozwiązanie.
5 - PD -nie podłączone
6 - VSS - GND
7 - VDD - 5V
8 - VEE - nie podłączone
9 - /WR - PC0
10 - /RD - PC1
11 - /CE - PC2
12 - C/D - PC3
13 - /RST - PC4
14-21 - DB0-DB7 - PA0-PA7
22 - FS - PC5
Poniższa funkcja nie zwraca mi żadnej wartości przez zmienną tmp. Czy sterownik jest uśpiony? return tmp
unsigned char GLCD_ChceckStatus(void)
{
uint8_t tmp;
GLCD_DATA_DDR = 0x00;
GLCD_CTRL_PORT &= ~((1 << GLCD_RD) | (1 << GLCD_CE));
delay();
tmp = GLCD_DATA_PIN;
GLCD_DATA_DDR = 0xFF;
GLCD_CTRL_PORT |= ((1 << GLCD_RD) | (1 << GLCD_CE));
PORTD=tmp;
return tmp;
}
Poniżej przedstawiłem przykładowe użycie funkcji GLCD_ChceckStatus().
void GLCD_WriteData(unsigned char data)
{
while(!(GLCD_ChceckStatus()&0x03));
GLCD_DATA_PORT = data;
PORTD=0xFF;
GLCD_CTRL_PORT &= ~((1 << GLCD_WR) | (1 << GLCD_CE) | (1 << GLCD_CD));
delay();
GLCD_CTRL_PORT |= ((1 << GLCD_WR) | (1 << GLCD_CE) | (1 << GLCD_CD));
}