Witam!!!
Chciałem sobie podpiąć wyświetlacz z wyżej wymienionego telefonu pod ATmega644. LCD pracuje po sprzętowym SPI + dwa dodatkowe piny na RS i RESET. Pobrałem z internetu instrukcje w PDF jak ten wyświetlacz zainicjować. Napisałem procedury w c pod WUN AVR, ale coś mi to się nie odpala. połączenia są poprawne SPI też napewno działa bo, dekoder mp3 pracuje poprawnie. Problem pewnie leży gdzies w programie, ale nie mogę go dostrzec. Prosż eo pomoc w rozwiązaniu problemu.
Kod inicjalizacji procka:
Chciałem sobie podpiąć wyświetlacz z wyżej wymienionego telefonu pod ATmega644. LCD pracuje po sprzętowym SPI + dwa dodatkowe piny na RS i RESET. Pobrałem z internetu instrukcje w PDF jak ten wyświetlacz zainicjować. Napisałem procedury w c pod WUN AVR, ale coś mi to się nie odpala. połączenia są poprawne SPI też napewno działa bo, dekoder mp3 pracuje poprawnie. Problem pewnie leży gdzies w programie, ale nie mogę go dostrzec. Prosż eo pomoc w rozwiązaniu problemu.
Kod inicjalizacji procka:
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include "spi.h"
#include "s65_lcd.h"
char cmd;
char int1[24] =
{
0xFD, 0xFD, 0xFD, 0xFD,
0xEF, 0x00, 0xEE, 0x04, 0x1B, 0x04, 0xFE, 0xFE, 0xFE, 0xFE, 0xEF, 0x90, 0x4A, 0x04,
0x7F, 0x3F, 0xEE, 0x04, 0x43, 0x06
};
char int2[40] =
{
0xEF, 0x90, 0x09, 0x83, 0x08, 0x00, 0x0B, 0xAF, 0x0A, 0x00, 0x05, 0x00, 0x06, 0x00,
0x07, 0x00, 0xEF, 0x00, 0xEE, 0x0C, 0xEF, 0x90, 0x00, 0x80, 0xEF, 0xB0, 0x49, 0x02,
0xEF, 0x00, 0x7F, 0x01, 0xE1, 0x81, 0xE2, 0x02, 0xE2, 0x76, 0xE1, 0x83
};
char int3[6] =
{
0x80, 0x01,
0xEF, 0x90, 0x00, 0x00
};
void lcd_init(void)
{
int n = 1;
while(n<25)
{
if(n==3)
{
_delay_ms(50);
}
send_lcd_cmd(int1[1]);
n++;
}
n = 1;
_delay_ms(6);
while(n<41)
{
send_lcd_cmd(int1[2]);
n++;
}
n = 1;
_delay_ms(50);
while(n<7)
{
send_lcd_cmd(int1[3]);
n++;
}
}
void send_lcd_cmd(char lcd_data)
{
spi_init_lcd();
PORTD |=(_BV(PD4)|_BV(PD3));
PORTB &=~_BV(PB1);
spi_send(lcd_data);
}