#include "lcd_spi.h" #include #include #define SPI_DDR DDRB #define SPI_MOSI DDB3 #define SPI_MISO DDB4 #define SPI_SCK DDB5 #define LCD_CS DDB2 #define LCD_RESET DDB1 #define LCD_CS_1 PORTB |= (1 << LCD_CS); #define LCD_CS_0 PORTB &= ~(1 << LCD_CS); #define LCD_RESET_1 PORTB |= (1 << LCD_RESET); #define LCD_RESET_0 PORTB &= ~(1 << LCD_RESET); void lcd_init(void) { spi_masterInit(); //Reset LCD_RESET_0 _delay_us(200); LCD_RESET_1 _delay_us(5); spi_masterTransmit(0x3A); //8 bit data length extension Bit RE=1; REV=0 //_delay_ms(100); spi_masterTransmit(0x09); //4 line display //_delay_ms(50); spi_masterTransmit(0x06); //bottom view //_delay_ms(50); spi_masterTransmit(0x1E); //BS1=1 //_delay_ms(50); spi_masterTransmit(0x39); //8 bit data length extension Bit RE=0; IS=1 //_delay_ms(50); spi_masterTransmit(0x1B); //BS0=1 -> Bias=1/6 //_delay_ms(50); spi_masterTransmit(0x6E); //Devider on and set value //_delay_ms(50); spi_masterTransmit(0x56); //Booster on and set contrast (DB1=C5, DB0=C4) //_delay_ms(50); spi_masterTransmit(0x7A); //Set contrast (DB3-DB0=C3-C0) //spi_masterTransmit(0x74); //Set contrast (DB3-DB0=C3-C0) //_delay_ms(50); spi_masterTransmit(0x38); //8 bit data length extension Bit RE=0; IS=0 //_delay_ms(50); spi_masterTransmit(0x0F); //Display on, cursor on, blink on //_delay_ms(50); _delay_ms(20); // wait spi_masterTransmit(0x02); //Home spi_masterTransmit(0x30); //0 anzeigen } void spi_masterInit(void) { //Output PINS SPI_DDR |= (1<> 4; while(!(SPSR & (1<