Librarie pour ecran 128x32 de MyLab

Dependents:   MyLab_Lib

Revision:
12:00bbd42614c7
Parent:
11:c00a727f140f
--- a/C12832.cpp	Tue Mar 29 18:26:15 2016 +0000
+++ b/C12832.cpp	Tue Mar 29 18:56:20 2016 +0000
@@ -1,5 +1,21 @@
-/* mbed library for MyLab 128*32 pixel LCD
-*/
+/* mbed library for the mbed Lab Board  128*32 pixel LCD
+ * use C12832 controller
+ * Copyright (c) 2012 Peter Drescher - DC2PD
+ * Released under the MIT License: http://mbed.org/license/mit
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+// 13.10.12    initial design
+// 25.10.12    add autorefresh of screen
+// 25.10.12    add standart font
+// 20.12.12    add bitmap graphics
 
 // optional defines :
 // #define debug_lcd  1
@@ -13,8 +29,7 @@
 #define BPP    1       // Bits per pixel
 
 
-C12832::C12832(PinName rs, PinName e,PinName rw, PinName a0,PinName cs,PinName d0, PinName d1,
-        PinName d2, PinName d3,PinName d4,PinName d5,PinName d6,PinName d7,const char* name) : GraphicsDisplay(name),_rs(rs), _e(e), _a0(a0),_cs(cs),_rw(rw),
+C12832::C12832(PinName e,PinName rw, PinName a0,PinName cs, PinName d0, PinName d1,PinName d2, PinName d3,PinName d4,PinName d5,PinName d6,PinName d7,const char* name) : GraphicsDisplay(name), _e(e), _a0(a0),_cs(cs),_rw(rw),
         		_d(d0, d1, d2, d3,d4,d5,d6,d7) {
 
     _cs = 1;
@@ -221,237 +236,7 @@
 }
 
 
-void C12832::line(int x0, int y0, int x1, int y1, int color)
-{
-    int   dx = 0, dy = 0;
-    int   dx_sym = 0, dy_sym = 0;
-    int   dx_x2 = 0, dy_x2 = 0;
-    int   di = 0;
 
-    dx = x1-x0;
-    dy = y1-y0;
-
-    //  if (dx == 0) {        /* vertical line */
-    //      if (y1 > y0) vline(x0,y0,y1,color);
-    //      else vline(x0,y1,y0,color);
-    //      return;
-    //  }
-
-    if (dx > 0) {
-        dx_sym = 1;
-    } else {
-        dx_sym = -1;
-    }
-    //  if (dy == 0) {        /* horizontal line */
-    //      if (x1 > x0) hline(x0,x1,y0,color);
-    //      else  hline(x1,x0,y0,color);
-    //      return;
-    //  }
-
-    if (dy > 0) {
-        dy_sym = 1;
-    } else {
-        dy_sym = -1;
-    }
-
-    dx = dx_sym*dx;
-    dy = dy_sym*dy;
-
-    dx_x2 = dx*2;
-    dy_x2 = dy*2;
-
-    if (dx >= dy) {
-        di = dy_x2 - dx;
-        while (x0 != x1) {
-
-            pixel(x0, y0, color);
-            x0 += dx_sym;
-            if (di<0) {
-                di += dy_x2;
-            } else {
-                di += dy_x2 - dx_x2;
-                y0 += dy_sym;
-            }
-        }
-        pixel(x0, y0, color);
-    } else {
-        di = dx_x2 - dy;
-        while (y0 != y1) {
-            pixel(x0, y0, color);
-            y0 += dy_sym;
-            if (di < 0) {
-                di += dx_x2;
-            } else {
-                di += dx_x2 - dy_x2;
-                x0 += dx_sym;
-            }
-        }
-        pixel(x0, y0, color);
-    }
-    if(auto_up) copy_to_lcd();
-}
-
-void C12832::rect(int x0, int y0, int x1, int y1, int color)
-{
-
-    if (x1 > x0) line(x0,y0,x1,y0,color);
-    else  line(x1,y0,x0,y0,color);
-
-    if (y1 > y0) line(x0,y0,x0,y1,color);
-    else line(x0,y1,x0,y0,color);
-
-    if (x1 > x0) line(x0,y1,x1,y1,color);
-    else  line(x1,y1,x0,y1,color);
-
-    if (y1 > y0) line(x1,y0,x1,y1,color);
-    else line(x1,y1,x1,y0,color);
-
-    if(auto_up) copy_to_lcd();
-}
-
-void C12832::fillrect(int x0, int y0, int x1, int y1, int color)
-{
-    int l,c,i;
-    if(x0 > x1) {
-        i = x0;
-        x0 = x1;
-        x1 = i;
-    }
-
-    if(y0 > y1) {
-        i = y0;
-        y0 = y1;
-        y1 = i;
-    }
-
-    for(l = x0; l<= x1; l ++) {
-        for(c = y0; c<= y1; c++) {
-            pixel(l,c,color);
-        }
-    }
-    if(auto_up) copy_to_lcd();
-}
-
-
-
-void C12832::circle(int x0, int y0, int r, int color)
-{
-
-    int draw_x0, draw_y0;
-    int draw_x1, draw_y1;
-    int draw_x2, draw_y2;
-    int draw_x3, draw_y3;
-    int draw_x4, draw_y4;
-    int draw_x5, draw_y5;
-    int draw_x6, draw_y6;
-    int draw_x7, draw_y7;
-    int xx, yy;
-    int di;
-    //WindowMax();
-    if (r == 0) {       /* no radius */
-        return;
-    }
-
-    draw_x0 = draw_x1 = x0;
-    draw_y0 = draw_y1 = y0 + r;
-    if (draw_y0 < height()) {
-        pixel(draw_x0, draw_y0, color);     /* 90 degree */
-    }
-
-    draw_x2 = draw_x3 = x0;
-    draw_y2 = draw_y3 = y0 - r;
-    if (draw_y2 >= 0) {
-        pixel(draw_x2, draw_y2, color);    /* 270 degree */
-    }
-
-    draw_x4 = draw_x6 = x0 + r;
-    draw_y4 = draw_y6 = y0;
-    if (draw_x4 < width()) {
-        pixel(draw_x4, draw_y4, color);     /* 0 degree */
-    }
-
-    draw_x5 = draw_x7 = x0 - r;
-    draw_y5 = draw_y7 = y0;
-    if (draw_x5>=0) {
-        pixel(draw_x5, draw_y5, color);     /* 180 degree */
-    }
-
-    if (r == 1) {
-        return;
-    }
-
-    di = 3 - 2*r;
-    xx = 0;
-    yy = r;
-    while (xx < yy) {
-
-        if (di < 0) {
-            di += 4*xx + 6;
-        } else {
-            di += 4*(xx - yy) + 10;
-            yy--;
-            draw_y0--;
-            draw_y1--;
-            draw_y2++;
-            draw_y3++;
-            draw_x4--;
-            draw_x5++;
-            draw_x6--;
-            draw_x7++;
-        }
-        xx++;
-        draw_x0++;
-        draw_x1--;
-        draw_x2++;
-        draw_x3--;
-        draw_y4++;
-        draw_y5++;
-        draw_y6--;
-        draw_y7--;
-
-        if ( (draw_x0 <= width()) && (draw_y0>=0) ) {
-            pixel(draw_x0, draw_y0, color);
-        }
-
-        if ( (draw_x1 >= 0) && (draw_y1 >= 0) ) {
-            pixel(draw_x1, draw_y1, color);
-        }
-
-        if ( (draw_x2 <= width()) && (draw_y2 <= height()) ) {
-            pixel(draw_x2, draw_y2, color);
-        }
-
-        if ( (draw_x3 >=0 ) && (draw_y3 <= height()) ) {
-            pixel(draw_x3, draw_y3, color);
-        }
-
-        if ( (draw_x4 <= width()) && (draw_y4 >= 0) ) {
-            pixel(draw_x4, draw_y4, color);
-        }
-
-        if ( (draw_x5 >= 0) && (draw_y5 >= 0) ) {
-            pixel(draw_x5, draw_y5, color);
-        }
-        if ( (draw_x6 <=width()) && (draw_y6 <= height()) ) {
-            pixel(draw_x6, draw_y6, color);
-        }
-        if ( (draw_x7 >= 0) && (draw_y7 <= height()) ) {
-            pixel(draw_x7, draw_y7, color);
-        }
-    }
-    if(auto_up) copy_to_lcd();
-}
-
-void C12832::fillcircle(int x, int y, int r, int color)
-{
-    int i,up;
-    up = auto_up;
-    auto_up = 0;   // off
-    for (i = 0; i <= r; i++)
-        circle(x,y,i,color);
-    auto_up = up;
-    if(auto_up) copy_to_lcd();
-}
 
 void C12832::setmode(int mode)
 {
@@ -575,4 +360,3 @@
 }
 
 
-