Small modifications

This commit is contained in:
Marián 2022-12-01 15:00:32 +01:00 committed by GitHub
parent 59d4912c0f
commit 2ce548baba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,22 +1,23 @@
/**
* ---------------------------------------------------------------+
/**
* -------------------------------------------------------------------------------------+
* @desc SSD1306 OLED Driver
* ---------------------------------------------------------------+
* -------------------------------------------------------------------------------------+
* Copyright (C) 2020 Marian Hrinko.
* Written by Marian Hrinko (mato.hrinko@gmail.com)
*
* @author Marian Hrinko
* @datum 06.10.2020
* @update 19.07.2021
* @update 21.11.2022
* @file ssd1306.h
* @version 2.0
* @tested AVR Atmega328
* @version 3.0
* @tested AVR Atmega328p
*
* @depend font.h, twi.h
* ---------------------------------------------------------------+
* -------------------------------------------------------------------------------------+
* @descr Version 1.0 -> applicable for 1 display
* Version 2.0 -> rebuild to 'cacheMemLcd' array
* ---------------------------------------------------------------+
* Version 3.0 -> remove 'cacheMemLcd' approach
* -------------------------------------------------------------------------------------+
* @usage Basic Setup for OLED Display
*/
@ -24,24 +25,20 @@
#define __SSD1306_H__
// includes
#include <string.h>
#include "font.h"
#include "twi.h"
// Success
// -------------------------------------------
// Success / Error
// ------------------------------------------------------------------------------------
#define SSD1306_SUCCESS 0
// Error
// -------------------------------------------
#define SSD1306_ERROR 1
// Address definition
// -----------------------------------
// ------------------------------------------------------------------------------------
#define SSD1306_ADDR 0x3C
// Command definition
// -----------------------------------
// ------------------------------------------------------------------------------------
#define SSD1306_COMMAND 0x80 // Continuation bit=1, D/C=0; 1000 0000
#define SSD1306_COMMAND_STREAM 0x00 // Continuation bit=0, D/C=0; 0000 0000
#define SSD1306_DATA 0xC0 // Continuation bit=1, D/C=1; 1100 0000
@ -73,27 +70,24 @@
#define SSD1306_VCOM_DESELECT 0xDB
// Clear Color
// -----------------------------------
// ------------------------------------------------------------------------------------
#define CLEAR_COLOR 0x00
// Init Status
// -----------------------------------
// ------------------------------------------------------------------------------------
#define INIT_STATUS 0xFF
// AREA definition
// -----------------------------------
// ------------------------------------------------------------------------------------
#define START_PAGE_ADDR 0
#define END_PAGE_ADDR 7
#define START_COLUMN_ADDR 0
#define END_COLUMN_ADDR 127
#define END_PAGE_ADDR 7 // 7 for 128x64, 3 for 128x32 version
#define START_COL_ADDR 0
#define END_COL_ADDR 127
#define CACHE_SIZE_MEM (1 + END_PAGE_ADDR) * (1 + END_COLUMN_ADDR)
#define CACHE_SIZE_MEM (1 + END_PAGE_ADDR) * (1 + END_COL_ADDR)
#define MAX_X END_COLUMN_ADDR
#define MAX_Y (END_PAGE_ADDR+1)*8
// @var set area
unsigned int _counter;
#define MAX_X END_COL_ADDR
#define MAX_Y (END_PAGE_ADDR + 1) * 8
/**
* @desc SSD1306 Init
@ -107,7 +101,7 @@
/**
* @desc SSD1306 Send Start and SLAW request
*
* @param uint8_t
* @param uint8_t address
*
* @return uint8_t
*/
@ -116,7 +110,7 @@
/**
* @desc SSD1306 Send command
*
* @param uint8_t
* @param uint8_t command
*
* @return uint8_t
*/
@ -149,6 +143,15 @@
*/
uint8_t SSD1306_InverseScreen (void);
/**
* @desc SSD1306 Update screen
*
* @param void
*
* @return uint8_t
*/
uint8_t SSD1306_UpdateScreen (void);
/**
* @desc SSD1306 Update text position
*
@ -161,13 +164,25 @@
/**
* @desc SSD1306 Set position
*
* @param uint8_t
* @param uint8_t
* @param uint8_t x
* @param uint8_t y
*
* @return uint8_t
*/
uint8_t SSD1306_SetPosition (uint8_t, uint8_t);
/**
* @desc SSD1306 Set window
*
* @param uint8_t x1
* @param uint8_t x2
* @param uint8_t y1
* @param uint8_t y2
*
* @return void
*/
uint8_t SSD1306_SetWindow (uint8_t, uint8_t, uint8_t, uint8_t);
/**
* @desc SSD1306 Draw character
*
@ -189,20 +204,31 @@
/**
* @desc Draw pixel
*
* @param uint8_t
* @param uint8_t
* @param uint8_t x
* @param uint8_t y
*
* @return uint8_t
*/
uint8_t SSD1306_DrawPixel (uint8_t, uint8_t);
/**
* @desc Draw line horizontal
*
* @param uint8_t y
* @param uint8_t x1
* @param uint8_t x2
*
* @return uint8_t
*/
uint8_t SSD1306_DrawLineHorz (uint8_t, uint8_t, uint8_t);
/**
* @desc Draw line
*
* @param uint8_t
* @param uint8_t
* @param uint8_t
* @param uint8_t
*
* @param uint8_t x1
* @param uint8_t x2
* @param uint8_t y1
* @param uint8_t y2
*
* @return uint8_t
*/