PICSimLab - Programmable IC Simulator Laboratory 0.9.2
PICSimLab - API
Loading...
Searching...
No Matches
lcd_ssd1306.h
1/* ########################################################################
2
3 PICSimLab - Programmable IC Simulator Laboratory
4
5 ########################################################################
6
7 Copyright (c) : 2020-2024 Luis Claudio GambĂ´a Lopes <lcgamboa@yahoo.com>
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
12 any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22
23 For e-mail suggestions : lcgamboa@yahoo.com
24 ######################################################################## */
25
26#ifndef LCD_SSD1306
27#define LCD_SSD1306
28
29#include "../lib/draw.h"
30#include "bitbang_i2c.h"
31#include "bitbang_spi.h"
32
33/* pinout
34 1 /RST
35 2 /CE
36 3 DC
37 4 DIN
38 5 CLK
39 6 VCC
40 7 BL
41 8 GND
42 */
43
44typedef struct {
45 unsigned short int ram[128][8];
46 unsigned char hrst;
47 unsigned char dat;
48 unsigned char am; // address mode
49 unsigned char inv; // inverted
50 unsigned char on; // on/off
51 unsigned char x, y;
52 unsigned char update;
53 unsigned char last_cmd;
54 unsigned char cmd_argc;
55 unsigned char cmd_val;
56 unsigned char dc;
57 unsigned char co;
58
59 unsigned char col_start;
60 unsigned char col_end;
61 unsigned char pag_start;
62 unsigned char pag_end;
63
64 bitbang_spi_t bb_spi;
65 bitbang_i2c_t bb_i2c;
67
68void lcd_ssd1306_rst(lcd_ssd1306_t* lcd);
69void lcd_ssd1306_init(lcd_ssd1306_t* lcd);
70void lcd_ssd1306_update(lcd_ssd1306_t* lcd);
71
72unsigned char lcd_ssd1306_SPI_io(lcd_ssd1306_t* lcd, unsigned char din, unsigned char clk, unsigned char ncs,
73 unsigned char nrst, unsigned char dc);
74unsigned char lcd_ssd1306_I2C_io(lcd_ssd1306_t* lcd, unsigned char sda, unsigned char scl);
75
76void lcd_ssd1306_draw(lcd_ssd1306_t* lcd, CanvasCmd_ft CanvasCmd, int x1, int y1, int w1, int h1, int picpwr);
77
78#endif // LCD_SSD1306
Definition bitbang_i2c.h:39
Definition bitbang_spi.h:35
Definition lcd_ssd1306.h:44