kopia lustrzana https://github.com/pjalocha/esp32-ogn-tracker
				
				
				
			
		
			
				
	
	
		
			46 wiersze
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			46 wiersze
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
| #ifndef __SSD1306_H__
 | |
| #define __SSD1306_H__
 | |
| 
 | |
| // http://robotcantalk.blogspot.com/2015/03/interfacing-arduino-with-ssd1306-driven.html
 | |
| 
 | |
| // SLA (0x3C) + WRITE_MODE (0x00) =  0x78
 | |
| #define OLED_I2C_ADDRESS   0x3C
 | |
| 
 | |
| // Control byte
 | |
| #define OLED_CONTROL_BYTE_CMD_SINGLE    0x80
 | |
| #define OLED_CONTROL_BYTE_CMD_STREAM    0x00
 | |
| #define OLED_CONTROL_BYTE_DATA_STREAM   0x40
 | |
| 
 | |
| // Fundamental commands (pg.28)
 | |
| #define OLED_CMD_SET_CONTRAST           0x81    // follow with 0x7F
 | |
| #define OLED_CMD_DISPLAY_RAM            0xA4
 | |
| #define OLED_CMD_DISPLAY_ALLON          0xA5
 | |
| #define OLED_CMD_DISPLAY_NORMAL         0xA6
 | |
| #define OLED_CMD_DISPLAY_INVERTED       0xA7
 | |
| #define OLED_CMD_DISPLAY_OFF            0xAE
 | |
| #define OLED_CMD_DISPLAY_ON             0xAF
 | |
| 
 | |
| // Addressing Command Table (pg.30)
 | |
| #define OLED_CMD_SET_MEMORY_ADDR_MODE   0x20    // follow with 0x00 = HORZ mode = Behave like a KS108 graphic LCD
 | |
| #define OLED_CMD_SET_COLUMN_RANGE       0x21    // can be used only in HORZ/VERT mode - follow with 0x00 and 0x7F = COL127
 | |
| #define OLED_CMD_SET_PAGE_RANGE         0x22    // can be used only in HORZ/VERT mode - follow with 0x00 and 0x07 = PAGE7
 | |
| 
 | |
| // Hardware Config (pg.31)
 | |
| #define OLED_CMD_SET_DISPLAY_START_LINE 0x40
 | |
| #define OLED_CMD_SET_SEGMENT_REMAP      0xA1
 | |
| #define OLED_CMD_SET_MUX_RATIO          0xA8    // follow with 0x3F = 64 MUX
 | |
| #define OLED_CMD_SET_COM_SCAN_MODE      0xC8
 | |
| #define OLED_CMD_SET_DISPLAY_OFFSET     0xD3    // follow with 0x00
 | |
| #define OLED_CMD_SET_COM_PIN_MAP        0xDA    // follow with 0x12
 | |
| #define OLED_CMD_NOP                    0xE3    // NOP
 | |
| 
 | |
| // Timing and Driving Scheme (pg.32)
 | |
| #define OLED_CMD_SET_DISPLAY_CLK_DIV    0xD5    // follow with 0x80
 | |
| #define OLED_CMD_SET_PRECHARGE          0xD9    // follow with 0xF1
 | |
| #define OLED_CMD_SET_VCOMH_DESELCT      0xDB    // follow with 0x30
 | |
| 
 | |
| // Charge Pump (pg.62)
 | |
| #define OLED_CMD_SET_CHARGE_PUMP        0x8D    // follow with 0x14
 | |
| 
 | |
| #endif // __SSD1306_H__
 |