Changes from @defragster for OLED

This commit is contained in:
Erik Tylek Kettenburg 2015-01-19 21:05:37 -08:00
parent 6e29ad8d17
commit 32573857c0
2 changed files with 29 additions and 11 deletions

View File

@ -17,8 +17,10 @@
#include "DigisparkOLED.h" #include "DigisparkOLED.h"
#include "font6x8.h" #include "font6x8.h"
#include "font8x16.h"
#ifndef _nofont_8x16 // tBUG Optional removal to save code space
#include "font8x16.h"
#endif
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@ -153,18 +155,27 @@ size_t SSD1306Device::write(byte c) {
if(c == '\r') if(c == '\r')
return 1; return 1;
if(c == '\n'){ if(c == '\n'){
if(oledFont == 0) if(oledFont == FONT6X8) { // tBUG
setCursor(0, oledY+1); oledY++;
else // if ( oledY > 7) // tBUG
setCursor(0, oledY+2); // oledY = 7;
}
else {
oledY+=2; //tBUG Large Font up by two
if ( oledY > 6) // tBUG
oledY = 6;
}
setCursor(0, oledY);
return 1; return 1;
} }
if(oledFont == 0){ if(oledFont == FONT6X8){
if (oledX > 122) if (oledX > 122)
{ {
oledX = 0; oledX = 0;
oledY++; oledY++;
if ( oledY > 7) // tBUG
oledY = 7;
setCursor(oledX, oledY); setCursor(oledX, oledY);
} }
@ -176,11 +187,15 @@ size_t SSD1306Device::write(byte c) {
ssd1306_send_data_stop(); ssd1306_send_data_stop();
setCursor(oledX+6, oledY); setCursor(oledX+6, oledY);
} }
#ifndef _nofont_8x16 // tBUG
else{ else{
if (oledX > 120) if (oledX > 120)
{ {
oledX = 0; oledX = 0;
oledY++; oledY+=2; //tBUG Large Font up by two
// oledY++;
if ( oledY > 6) // tBUG
oledY = 6;
setCursor(oledX, oledY); setCursor(oledX, oledY);
} }
@ -198,8 +213,8 @@ size_t SSD1306Device::write(byte c) {
} }
ssd1306_send_data_stop(); ssd1306_send_data_stop();
setCursor(oledX + 8, oledY - 1); setCursor(oledX + 8, oledY - 1);
} }
#endif
return 1; return 1;
} }
@ -210,8 +225,8 @@ void SSD1306Device::bitmap(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, const
{ {
uint16_t j = 0; uint16_t j = 0;
uint8_t y, x; uint8_t y, x;
if (y1 % 8 == 0) y = y1 / 8; // if (y1 % 8 == 0) y = y1 / 8; // else y = y1 / 8 + 1; // tBUG :: this does nothing as y is initialized below
else y = y1 / 8 + 1; // THIS PARAM rule on y makes any adjustment here WRONG //usage oled.bitmap(START X IN PIXELS, START Y IN ROWS OF 8 PIXELS, END X IN PIXELS, END Y IN ROWS OF 8 PIXELS, IMAGE ARRAY);
for (y = y0; y < y1; y++) for (y = y0; y < y1; y++)
{ {
setCursor(x0,y); setCursor(x0,y);

View File

@ -17,7 +17,10 @@
#ifndef DIGISPARKOLED_H #ifndef DIGISPARKOLED_H
#define DIGISPARKOLED_H #define DIGISPARKOLED_H
// #define _nofont_8x16 //tBUG
#ifndef _nofont_8x16 //tBUG
#define FONT8X16 1 #define FONT8X16 1
#endif
#define FONT6X8 0 #define FONT6X8 0
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------