oled-display-master
所属分类:嵌入式/单片机/硬件编程
开发工具:C/C++
文件大小:2077KB
下载次数:3
上传日期:2020-02-10 20:56:47
上 传 者:
私家家码农
说明: 2.42寸OLED技术资料,包括数据手册和源代码例程
(source code for 2.42 OLED)
文件列表:
LICENSE (35147, 2019-12-12)
Makefile (11486, 2019-12-12)
bigchars.JPG (1057230, 2019-12-12)
font.c (5389, 2019-12-12)
font.h (293, 2019-12-12)
i2c.c (4309, 2019-12-12)
i2c.h (1181, 2019-12-12)
lcd.c (18662, 2019-12-12)
lcd.h (6186, 2019-12-12)
main.c (593, 2019-12-12)
oled.jpg (1110372, 2019-12-12)
# OLED for AVR mikrocontrollers
Library for oled-displays with SSD1306, SSD1309 or SH1106 display-controller connected with I2C or SPI at an AVR Atmel Atmega like Atmega328P.
This library allows you to display text or/and graphic at oled-display.
The library need less than 2 kilobytes flash-memory and 3 bytes sram in textmode, in graphicmode library need less than 3 kilobytes flash-memory and 1027 bytes static sram so you can use oled-displays e.g with Atmega48PA (only with textmode).
Library is only tested with 128x*** Pixel display, lower resolution not tested but should work too.
If you want to use your own I2C library you have to fit i2c-function at lcd-library.
Settings for I2C-bus have to set at i2c.h
Settings for display have to set at lcd.h
If you want to use characters like e.g. a set your compiler input-charset to utf-8 and your compiler exec-charset to iso-8859-15 (look at makefile line 115).
Testcondition: Display: SSD1306 OLED, Compiler Optimizelevel: -Os, μC: Atmega328p @ 8 MHz internal RC
Memory:
Modul |
Flash |
Static RAM |
I2C-Core |
234 Bytes |
0 Bytes |
FONT |
***4 Bytes |
0 Bytes |
OLED (Text-Mode) |
1449 Bytes |
3 Bytes |
OLED (Graphic-Mode) |
2403 Bytes |
1027 Bytes |
Speed (print 20 charaters (1 line) in normal size to display):
Mode |
Time |
I2C-Speed RAM |
OLED (Text-Mode) |
4.411 ms |
400 kHz |
OLED (Text-Mode) |
15.384 ms |
100 kHz |
OLED (Graphic-Mode) |
26.603 ms |
400 kHz |
OLED (Graphic-Mode) |
96.294 ms |
100 kHz |
example:
```c
//****main.c****//
#include "lcd.h"
int main(void){
lcd_init(LCD_DISP_ON); // init lcd and turn on
lcd_puts("Hello World"); // put string from RAM to display (TEXTMODE) or buffer (GRAPHICMODE)
lcd_gotoxy(0,2); // set cursor to first column at line 3
lcd_puts_p(PSTR("String from flash")); // puts string form flash to display (TEXTMODE) or buffer (GRAPHICMODE)
#if defined GRAPHICMODE
lcd_drawCircle(***,32,7,WHITE); // draw circle to buffer
lcd_display(); // send buffer to display
#endif
for(;;){
//main loop
}
return 0;
}
```
example for chars with double height:
```c
//****main.c****//
#include "lcd.h"
int main(void){
lcd_init(LCD_DISP_ON);
lcd_clrscr();
lcd_set_contrast(0x00);
lcd_gotoxy(4,1);
lcd_puts("Normal Size");
lcd_charMode(DOUBLESIZE);
lcd_gotoxy(0,4);
lcd_puts(" Double \r\n Size");
lcd_charMode(NORMALSIZE);
#ifdef GRAPHICMODE
lcd_display();
#endif
for(;;){
//main loop
}
return 0;
}
```
近期下载者:
相关文件:
收藏者: