From 4a055bfed93bbe8ec0d238cde315b86db8fc67a7 Mon Sep 17 00:00:00 2001 From: Haiyan Zhang Date: Sun, 10 Aug 2014 23:49:36 +0100 Subject: [PATCH] Extra function overloads for Strings and Floats --- SeeedOLED.cpp | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++ SeeedOLED.h | 2 ++ 2 files changed, 70 insertions(+) diff --git a/SeeedOLED.cpp b/SeeedOLED.cpp index 52d6e3a..e48e1e4 100644 --- a/SeeedOLED.cpp +++ b/SeeedOLED.cpp @@ -224,6 +224,15 @@ void SeeedOLED::putString(const char *String) } } +void SeeedOLED::putString(char *String) +{ + unsigned char i=0; + while(String[i]) + { + putChar(String[i]); + i++; + } +} unsigned char SeeedOLED::putNumber(long long_num) { unsigned char char_buffer[10]=""; @@ -258,6 +267,65 @@ unsigned char SeeedOLED::putNumber(long long_num) } +unsigned char SeeedOLED::putFloat(float float_num) +{ + unsigned char char_buffer[10]=""; + unsigned char i = 0; + unsigned char f = 0; + long long_num = (long)float_num; + int places = 4; + + if (long_num < 0) + { + f=1; + putChar('-'); + long_num = -long_num; + float_num = -float_num; + } + else if (long_num == 0) + { + f=1; + putChar('0'); + return f; + } + + while (long_num > 0) + { + char_buffer[i++] = long_num % 10; + long_num /= 10; + } + + f=f+i; + for(; i > 0; i--) + { + putChar('0'+ char_buffer[i - 1]); + } + + putChar('.'); + long_num = (float_num*1000.0)- ((long)float_num*1000); + if (long_num > 0) { + //long_num = 67;//float_num*1000.0; + unsigned char char_buffer_f[10]=""; + i = 0; + while (long_num > 0) + { + char_buffer_f[i++] = long_num % 10; + long_num /= 10; + } + + f=f+i; + for(; i > 0; i--) + { + putChar('0'+ char_buffer_f[i - 1]); + } + + } + + return f; + +} + + void SeeedOLED::drawBitmap(unsigned char *bitmaparray,int bytes) { char localAddressMode = addressingMode; diff --git a/SeeedOLED.h b/SeeedOLED.h index 8ddea21..2c74e38 100644 --- a/SeeedOLED.h +++ b/SeeedOLED.h @@ -81,7 +81,9 @@ void clearDisplay(); void setBrightness(unsigned char Brightness); void putChar(unsigned char c); void putString(const char *String); +void putString(char *String); unsigned char putNumber(long n); +unsigned char putFloat(float n); void drawBitmap(unsigned char *bitmaparray,int bytes);