13 Commits

Author SHA1 Message Date
JP
87e118eb44 moved reDraw() to parent 2014-08-04 11:00:49 +10:00
JP
94fc7e6437 moved reDraw() to parent 2014-08-04 11:00:08 +10:00
JP
7c3ec25d70 added reDraw() 2014-08-04 10:36:33 +10:00
JP
dce58d7069 added reDraw() for MicroViewWidget class 2014-08-04 10:22:47 +10:00
JP
82d55a8201 merged czetie vertical slider 2014-08-03 16:16:00 +10:00
JP
d28428ce35 Merge branch 'czetie-vertical-slider' 2014-08-03 16:08:24 +10:00
JP
77faa7d583 added Vertical Slider example 2014-08-03 16:07:44 +10:00
JP
eb9edb19d6 moved example to example folder 2014-08-03 16:07:09 +10:00
JP
21fa22bec2 Merge branch 'vertical-slider' of https://github.com/czetie/MicroView-Arduino-Library into czetie-vertical-slider 2014-08-03 16:02:51 +10:00
JP
5afff4bff7 added v1.15b history 2014-08-03 15:59:04 +10:00
Carl Zetie
b5462c5bcb Many bugs fixed
OK, this version is actually worth looking at. Previous had more bugs
than you could shake a stick at.

vert_slider_test.ino illustrates the two slider styles, vertical
versions of the two existing styles
2014-07-14 18:39:13 -04:00
Carl Zetie
7b66741f79 Fixed my typo in MicroView.cpp
Fixed my typo in MicroView.cpp
2014-07-14 07:48:20 -04:00
Carl Zetie
c1e8756c4e Added Vertical Slider styles to Slider widget
Added WIDGETSTYLE2 (like 0, but vertical) and WIDGETSTYLE3 (like 1, but
vertical). NOTE: I don't have a build environment, so I can't even
promise this will compile! So if it's crap, just treat it as a concept
for an enhancement request!
2014-07-13 14:42:34 -04:00
6 changed files with 1253 additions and 1062 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -78,6 +78,8 @@
#define WIDGETSTYLE0 0
#define WIDGETSTYLE1 1
#define WIDGETSTYLE2 2
//Added for Vertical slider styles
#define WIDGETSTYLE3 3
#define SETCONTRAST 0x81
#define DISPLAYALLONRESUME 0xA4
@@ -224,6 +226,7 @@ private:
class MicroViewWidget {
public:
bool needFirstDraw;
MicroViewWidget(uint8_t newx, uint8_t newy, int16_t min, int16_t max);
uint8_t getX();
uint8_t getY();
@@ -240,6 +243,7 @@ public:
virtual void draw(){};
/** \brief Draw widget face overridden by child class. */
virtual void drawFace(){};
void reDraw();
private:
uint8_t x;
@@ -255,9 +259,9 @@ public:
MicroViewSlider(uint8_t newx, uint8_t newy, int16_t min, int16_t max, uint8_t sty);
void draw();
void drawFace();
void reDraw();
private:
uint8_t totalTicks, style;
bool needFirstDraw;
int16_t prevValue;
};
@@ -267,9 +271,9 @@ public:
MicroViewGauge(uint8_t newx, uint8_t newy, int16_t min, int16_t max, uint8_t sty);
void draw();
void drawFace();
void reDraw();
private:
uint8_t radius, style;
bool needFirstDraw;
int16_t prevValue;
};
@@ -337,6 +341,5 @@ void MVSPIClass::detachInterrupt() {
SPCR &= ~_BV(SPIE);
}
extern MicroView uView;
#endif

View File

@@ -83,6 +83,7 @@ void loop() {
void setup() {
uView.begin();
uView.clear(PAGE);
Serial.begin(115200); // user decide the baud rate
}
void loop() {
@@ -91,7 +92,23 @@ void loop() {
</code></pre>
## History
**v1.14b: 26th July 2014 by JP Liew
**v1.17b: 4th August 2014 by JP Liew**
* added reDraw() for MicroViewWidget class
* removed Serial.begin() from uView.begin() so that user can have control
* added MicroViewWidgetRedraw example
**v1.16b: 3rd August 2014 by czetie**
* added vertical slider widget
**v1.15b: 3rd August 2014 by Scott Allen**
* improved lots of low level routines, Fast SPI
* fixed some compilation warnings
* reduced overdriving display inputs
* added uVuew.end() to power off the display
* improved speed of display() and clear() functions
* fixed positionning of "3" on clock face
**v1.14b: 26th July 2014 by JP Liew**
* added Learning Kit Circuit Sketch
**v1.13b: 13th June 2014 by JP Liew**
@@ -132,7 +149,7 @@ void loop() {
**v1.05b: 6th February 2014 by JP Liew**
* changed MICROVIEW class name to MicroView
* created MICROVIEWWIDGET class
* created MicroViewWidget class
* added routines to draw widget
* added slider widget
* merged MicroViewWidget into MicroView

View File

@@ -0,0 +1,43 @@
/*
MicroView Arduino Library
Copyright (C) 2014 GeekAmmo
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <MicroView.h>
MicroViewWidget *vWidget1, *vWidget2;
void setup() {
uView.begin();
uView.clear(PAGE);
vWidget1 = new MicroViewSlider(0, 0, 0, 255, WIDGETSTYLE2);
vWidget2 = new MicroViewSlider(31, 0, 0, 255, WIDGETSTYLE3);
}
void loop() {
for (int i=0;i<=255;i++) {
vWidget1->setValue(i);
vWidget2->setValue(255-i);
uView.display();
}
for(int i=255; i>=0;i--) {
vWidget1->setValue(i);
vWidget2->setValue(255-i);
uView.display();
}
}

View File

@@ -0,0 +1,48 @@
/*
MicroView Arduino Library
Copyright (C) 2014 GeekAmmo
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <MicroView.h>
MicroViewWidget *widget[2]; // declaring an array of 4 MicroViewWidget
void setup() {
uView.begin(); // init and start MicroView
widget[0] = new MicroViewSlider(0,0,0,255); // declare widget0 as a Slider at x=0, y=0, min=0, max=100
widget[1] = new MicroViewGauge(32,24,0,255,WIDGETSTYLE0); // declare widget0 as a Slider at x=0, y=10, min=0, max=150
uView.clear(PAGE); // erase the memory buffer, when next uView.display() is called, the OLED will be cleared.
}
void loop() {
widget[0]->reDraw();
for (int i=0;i<=255;i++) {
widget[0]->setValue(i); // set value i to widget0
uView.display();
}
delay(500);
uView.clear(PAGE);
widget[1]->reDraw();
for (int i=0;i<=255;i++) {
widget[1]->setValue(i); // set value i to widget0
uView.display();
}
delay(500);
uView.clear(PAGE);
}

View File

@@ -77,5 +77,6 @@ ALL LITERAL1
WIDGETSTYLE0 LITERAL1
WIDGETSTYLE1 LITERAL1
WIDGETSTYLE2 LITERAL1
WIDGETSTYLE3 LITERAL1