Hello everyone
The problem is that the display from Nokia does not work
controller - PCF8814/STE2007
The screen should be full, but this does not happen.
My code for ATTiny13:
#define F_CPU 4000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/pgmspace.h> #define SCLK_OFF PORTB &= ~(1<<PB0) #define SCLK_ON PORTB |= (1<<PB0) #define SDA_OFF PORTB &= ~(1<<PB1) #define SDA_ON PORTB |= (1<<PB1) #define CS_OFF PORTB &= ~(1<<PB2) #define CS_ON PORTB |= (1<<PB2) #define RST_OFF PORTB &= ~(1<<PB3) #define RST_ON PORTB |= (1<<PB3) void send_bits(unsigned char cmd_,unsigned char data){ unsigned char i; CS_OFF; SCLK_OFF; //send command or data if(cmd_){SDA_ON;} else{SDA_OFF;} SCLK_ON; for ( i = 0 ; i < 8 ; i++ ) { SCLK_OFF; if ( data & 0x80 ) {SDA_ON;} else { SDA_OFF; } SCLK_ON; data <<= 1; } } void lcd_Init(){ CS_OFF; RST_OFF; _delay_ms(1); RST_ON; _delay_ms(50); send_bits(0,0x20); send_bits(0,0xEB);//ON TEMP COMPENSATION send_bits(0,0xA4);//NORMAL DISP send_bits(0,0x2f);//power ctrl on send_bits(0,0xc0);//y-mirror send_bits(0,0xa6);//non invert normal send_bits(0,0xaf);//on display send_bits(0,0x90);//max contrast CS_ON;//off spi } void lcd_gotoxy ( unsigned char x , unsigned char y ) { CS_OFF;//on spi send_bits ( 0 , ( 0xB0 | ( y & 0x0F ) ) ); send_bits ( 0 , ( 0x00 | ( x & 0x0F ) ) ); send_bits ( 0 , ( 0x10 | ( ( x >> 4 ) & 0x07 ) ) ); CS_ON;//off spi } void scr_update(void) { unsigned int i; lcd_gotoxy(0,0); CS_OFF; for( i=0; i<780; i++ ){ send_bits ( 1 , 0xFF ); } CS_ON; } int main(void) { DDRB |= 1<<PB0; DDRB |= 1<<PB1; DDRB |= 1<<PB2; DDRB |= 1<<PB3; SCLK_OFF; SDA_OFF; CS_OFF; RST_OFF; lcd_Init(); _delay_ms(200); scr_update(); while (1) { } }