Мне бы совет: в чем причина? Как исправить? Или может ссылочку на какой нибудь более менее понятный материал?
- Вложения
-
- OLED_SSD_1306.rar
- Исходник
- (28.23 КБ) 461 скачивание
Код: Выделить всё
void LCD_Clear(void)//очистка экрана
{
unsigned short i;
unsigned short x=0;
unsigned short y=0;
LCD_Goto(0,0);
for (i=0; i<(SSD1306_LCDWIDTH*SSD1306_LCDHEIGHT/8); i++)
//(SSD1306_LCDWIDTH*SSD1306_LCDHEIGHT/8)
{
LCD_Commmand(DataByte, 0x00);
x ++;
if(x>SSD1306_LCDWIDTH)
{
asm("wdr");
x =0;
y++;
LCD_Goto(0,y);
}
}
LCD_X =SSD1306_DEFAULT_SPACE;
LCD_Y =0;
}
Код: Выделить всё
LCD_Clear();
LCD_Goto(1,1);
LCD_Commmand(DataByte, 0x7E); LCD_Commmand(DataByte, 0x11);LCD_Commmand(DataByte, 0x11);LCD_Commmand(DataByte, 0x11);LCD_Commmand(DataByte, 0x7E); //A
LCD_Goto(10,1);
LCD_Commmand(DataByte, 0x7F); LCD_Commmand(DataByte, 0x09); LCD_Commmand(DataByte, 0x09); LCD_Commmand(DataByte, 0x09); LCD_Commmand(DataByte, 0x06);//Р
LCD_Goto(20,1);
LCD_Commmand(DataByte, 0x60); LCD_Commmand(DataByte, 0x3E); LCD_Commmand(DataByte, 0x21); LCD_Commmand(DataByte, 0x21); LCD_Commmand(DataByte, 0x7F);//д
LCD_Goto(30,1);
LCD_Commmand(DataByte, 0x27); LCD_Commmand(DataByte, 0x48); LCD_Commmand(DataByte, 0x48); LCD_Commmand(DataByte, 0x48); LCD_Commmand(DataByte, 0x3F );//У
LCD_Goto(40,1);
LCD_Commmand(DataByte, 0x7F); LCD_Commmand(DataByte,0x10 ); LCD_Commmand(DataByte, 0x09); LCD_Commmand(DataByte, 0x04); LCD_Commmand(DataByte, 0x7F);//И
LCD_Goto(50,1);
LCD_Commmand(DataByte, 0x7F); LCD_Commmand(DataByte, 0x08); LCD_Commmand(DataByte, 0x08); LCD_Commmand(DataByte, 0x08); LCD_Commmand(DataByte, 0x7F );//Н
LCD_Goto(60,1);
LCD_Commmand(DataByte, 0x3E); LCD_Commmand(DataByte, 0x41); LCD_Commmand(DataByte, 0x41); LCD_Commmand(DataByte, 0x41); LCD_Commmand(DataByte, 0x3E);//О
LCD_Goto(90,1);
LCD_Commmand(DataByte, 0x22); LCD_Commmand(DataByte, 0x41); LCD_Commmand(DataByte, 0x49); LCD_Commmand(DataByte,0x49 ); LCD_Commmand(DataByte, 0x36);//З
LCD_Goto(100,1);
LCD_Commmand(DataByte, 0x40); LCD_Commmand(DataByte, 0x3E); LCD_Commmand(DataByte, 0x01); LCD_Commmand(DataByte, 0x01); LCD_Commmand(DataByte, 0x7F);//Л
LCD_Goto(110,1);
LCD_Commmand(DataByte, 0x3E); LCD_Commmand(DataByte, 0x41); LCD_Commmand(DataByte, 0x41); LCD_Commmand(DataByte, 0x41); LCD_Commmand(DataByte, 0x3E);//О
В смысле по указателю на начало массива в EEPROM? На древнем хламе типа атмега8 ничего не получится. Нужны новые AVR или МК с другой архитектурой.Но почему то с массивом никак не получается....
Зачем самому рисовать ?geonov писал(а):каждую буковку отдельно пришлось рисовать.
да в любой)) Например я сейчас работаю в Java. Она работает с пикселями...Эйлер Леонард писал(а):как самому нарисовать картинку и в какой прграмме...
Это я к тому, что сам курил Java тот период, лет 15 назад. А проект Ваш очень интересный!При чём тут Интернет 56 кбит/с...
Код: Выделить всё
#define SET_CONTRAST 0x81
#define CMDMODE 0x00
#define DATAMODE 0x40
/** -------------------------------------------------------
* @brief Изменение яркости дисплея.
* @param value - величина яркости
* @return Состояние выполнения
*/
uint8_t SSD1306_Brightness(uint8_t value)
{
uint8_t set[] = {CMDMODE, SET_CONTRAST, value};
return I2C_MasterWrite(I2C_ADDR, set, sizeof(set));
}