Mark van Renswoude
b20ce09a2c
OLED worked, displaying large digits worked, reading VCC level worked, started refactoring. Does not currently build, but I'm too tired to figure it out right now.
70 lines
2.3 KiB
C
70 lines
2.3 KiB
C
/**
|
|
* SSD1306xLED - Drivers for SSD1306 controlled dot matrix OLED/PLED 128x64 displays
|
|
*
|
|
* @created: 2014-08-12
|
|
* @author: Neven Boyanov
|
|
*
|
|
* This is part of the Tinusaur/SSD1306xLED project.
|
|
*
|
|
* Copyright (c) 2016 Neven Boyanov, Tinusaur Team. All Rights Reserved.
|
|
* Distributed as open source software under MIT License, see LICENSE.txt file.
|
|
* Please, as a favor, retain the link http://tinusaur.org to The Tinusaur Project.
|
|
*
|
|
* Source code available at: https://bitbucket.org/tinusaur/ssd1306xled
|
|
*
|
|
*/
|
|
|
|
#ifndef SSD1306XLED_H
|
|
#define SSD1306XLED_H
|
|
|
|
// ============================================================================
|
|
|
|
// -----(+)---------------> // Vcc, Pin 1 on SSD1306 Board
|
|
// -----(-)---------------> // GND, Pin 2 on SSD1306 Board
|
|
#ifndef SSD1306_SCL
|
|
#define SSD1306_SCL PB2 // SCL, Pin 3 on SSD1306 Board
|
|
#endif
|
|
#ifndef SSD1306_SDA
|
|
#define SSD1306_SDA PB0 // SDA, Pin 4 on SSD1306 Board
|
|
#endif
|
|
#ifndef SSD1306_SA
|
|
#define SSD1306_SA 0x78 // Slave address
|
|
#endif
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// These functions are used only internally by the library
|
|
void ssd1306_xfer_start(void);
|
|
void ssd1306_xfer_stop(void);
|
|
void ssd1306_send_byte(uint8_t byte);
|
|
void ssd1306_send_command(uint8_t command);
|
|
void ssd1306_send_data_start(void);
|
|
void ssd1306_send_data_stop(void);
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#define ssd1306_clear() ssd1306_fill(0);
|
|
|
|
#define ssd1306_char(c) ssd1306_char_font6x8(c)
|
|
#define ssd1306_string(s) ssd1306_string_font6x8(s)
|
|
#define ssd1306_numdec(n) ssd1306_numdec_font6x8(n)
|
|
#define ssd1306_numdecp(n) ssd1306_numdecp_font6x8(n)
|
|
|
|
// ----------------------------------------------------------------------------
|
|
|
|
void ssd1306_init(void);
|
|
void ssd1306_setpos(uint8_t x, uint8_t y);
|
|
void ssd1306_fill4(uint8_t, uint8_t, uint8_t, uint8_t);
|
|
void ssd1306_fill2(uint8_t p1, uint8_t p2);
|
|
void ssd1306_fill(uint8_t p);
|
|
void ssd1306_fillscreen(uint8_t fill);
|
|
void ssd1306_char_font6x8(char ch);
|
|
void ssd1306_string_font6x8(char *s);
|
|
void ssd1306_numdec_font6x8(uint16_t num);
|
|
void ssd1306_numdecp_font6x8(uint16_t num);
|
|
void ssd1306_draw_bmp(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, const uint8_t bitmap[]);
|
|
|
|
// ============================================================================
|
|
|
|
#endif
|