SG12864A

Dependents:   SG12864A_TestProgram

Files at this revision

API Documentation at this revision

Comitter:
shintamainjp
Date:
Tue Aug 10 12:36:05 2010 +0000
Parent:
3:86e7fba29623
Child:
5:4d86043f7942
Commit message:

Changed in this revision

SG12864A.cpp Show annotated file Show diff for this revision Revisions of this file
SG12864A.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/SG12864A.cpp	Tue Jul 20 07:23:15 2010 +0000
+++ b/SG12864A.cpp	Tue Aug 10 12:36:05 2010 +0000
@@ -3,6 +3,9 @@
  *
  * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
  * http://shinta.main.jp/
+ *
+ * See also ...
+ * http://mbed.org/users/shintamainjp/notebook/sg12864asunlike-display-graphics-lcd-driver/
  */
 
 #include "SG12864A.h"
@@ -315,8 +318,13 @@
     }
     int tmp_max = max - min;
     int tmp_val = value - min;
-    int pix = ((x2 - x1) * tmp_val) / tmp_max;
-    bufferFillBox(x1 + 1, y1 + 1, x1 + pix - 1, y2 - 1, reverse);
+    if (horizontal) {
+        int pix = ((y2 - y1) * tmp_val) / tmp_max;
+        bufferFillBox(x1 + 1, y1 + 1, x1 - 1, y2 + pix - 1, reverse);
+    } else {
+        int pix = ((x2 - x1) * tmp_val) / tmp_max;
+        bufferFillBox(x1 + 1, y1 + 1, x1 + pix - 1, y2 - 1, reverse);
+    }
 }
 
 /**
--- a/SG12864A.h	Tue Jul 20 07:23:15 2010 +0000
+++ b/SG12864A.h	Tue Aug 10 12:36:05 2010 +0000
@@ -3,6 +3,9 @@
  *
  * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
  * http://shinta.main.jp/
+ *
+ * See also ...
+ * http://mbed.org/users/shintamainjp/notebook/sg12864asunlike-display-graphics-lcd-driver/
  */
 
 #ifndef _SG12864A_H_
@@ -11,9 +14,29 @@
 #include "mbed.h"
 
 /**
+ * SG12864A Graphics LCD module driver class.
  */
 class SG12864A {
 public:
+
+    /**
+     * Create.
+     *
+     * @param di D-/I (H:Instruction, L:Data)
+     * @param rw R/W- (H:Read, L:Write)
+     * @param en Enable signal
+     * @param db0 Data bus line bit-0.
+     * @param db1 Data bus line bit-1.
+     * @param db2 Data bus line bit-2.
+     * @param db3 Data bus line bit-3.
+     * @param db4 Data bus line bit-4.
+     * @param db5 Data bus line bit-5.
+     * @param db6 Data bus line bit-6.
+     * @param db7 Data bus line bit-7.
+     * @param cs1 Chip select signal for IC1.
+     * @param cs2 Chip select signal for IC2.
+     * @param res Reset signal.
+     */
     SG12864A(
         PinName di,
         PinName rw,
@@ -29,42 +52,200 @@
         PinName cs1,
         PinName cs2,
         PinName res);
+    /**
+     * Destroy.
+     */
     ~SG12864A();
+
+    /**
+     * Target of a chip.
+     */
     enum Target {
         CS1,
         CS2
     };
-    
+
     /*
-     * High Level Interfaces. (Abstracted)
+     * =======================================================
+     * High Level Interfaces.
+     * =======================================================
+     */
+
+    /**
+     * Push images from a internal buffer.
      */
     void bufferPush(void);
+
+    /**
+     * Pull images to a internal buffer.
+     */
     void bufferPull(void);
+
+    /**
+     * Clear a internal buffer images.
+     *
+     * @param reverse True if images are reversed.
+     */
     void bufferClear(bool reverse = false);
+
+    /**
+     * Draw a line to a internal buffer.
+     *
+     * @param x1 Starting point at x-axis.
+     * @param y1 Starting point at y-axis.
+     * @param x2 Ending point at x-axis.
+     * @param y2 Ending point at y-axis.
+     * @param reverse True if images are reversed.
+     */
     void bufferDrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, bool reverse = false);
+
+    /**
+     * Draw a box to a internal buffer.
+     *
+     * @param x1 Starting point at x-axis.
+     * @param y1 Starting point at y-axis.
+     * @param x2 Ending point at x-axis.
+     * @param y2 Ending point at y-axis.
+     * @param reverse True if images are reversed.
+     */
     void bufferDrawBox(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, bool reverse = false);
+
+    /**
+     * Fill a box to a internal buffer.
+     *
+     * @param x1 Starting point at x-axis.
+     * @param y1 Starting point at y-axis.
+     * @param x2 Ending point at x-axis.
+     * @param y2 Ending point at y-axis.
+     * @param reverse True if images are reversed.
+     */
     void bufferFillBox(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, bool reverse = false);
+
+    /**
+     * Draw a text string to a internal buffer.
+     * The font size is 5x7 dots.
+     *
+     * @param x Starting point at x-axis.
+     * @param y Starting point at y-axis.
+     * @param str Text string. (NULL terminate.)
+     * @param reverse True if images are reversed.
+     */
     void bufferDrawString(uint8_t x, uint8_t y, char * str, bool reverse = false);
+
+    /**
+     * Draw a character to a internal buffer.
+     * The font size is 5x7 dots.
+     *
+     * @param x Starting point at x-axis.
+     * @param y Starting point at y-axis.
+     * @param c A character.
+     * @param reverse True if images are reversed.
+     */
     void bufferDrawChar(uint8_t x, uint8_t y, char c, bool reverse = false);
+
+    /**
+     * Draw a checkbox to a internal buffer.
+     *
+     * @param x1 Starting point at x-axis.
+     * @param y1 Starting point at y-axis.
+     * @param x2 Ending point at x-axis.
+     * @param y2 Ending point at y-axis.
+     * @param state True if state is checked.
+     * @param reverse True if images are reversed.
+     */
     void bufferDrawCheckbox(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, bool state, bool reverse = false);
-    void bufferDrawProgressbar(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, int min, int max, int value, bool horizontal = true, bool reverse = false);
+
+    /**
+     * Draw a progressbar to a internal buffer.
+     *
+     * @param x1 Starting point at x-axis.
+     * @param y1 Starting point at y-axis.
+     * @param x2 Ending point at x-axis.
+     * @param y2 Ending point at y-axis.
+     * @param min Minimum value on a scale.
+     * @param max Maximum value on a scale.
+     * @param value Current value on a scale.
+     * @param state True if state is checked.
+     * @param reverse True if images are reversed.
+     */
+    void bufferDrawProgressbar(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, int min, int max, int value, bool horizontal = false, bool reverse = false);
 
     /*
      * High Level Interfaces.
      */
+
+    /**
+     * Reset module.
+     */
     void reset(void);
+
+    /**
+     * Clear display.
+     */
     void clear(void);
 
     /*
+     * =======================================================
      * Middle Level Interfaces.
+     * =======================================================
+     */
+
+    /**
+     * Set display ON/OFF.
+     *
+     * @param t Target.
+     * @param on True if the display is ON.
      */
     void setDisplayOnOff(Target t, bool on);
+    
+    /**
+     * Set display start line.
+     *
+     * @param t Target.
+     * @param displayStartLine Start line number.
+     */
     void setDisplayStartLine(Target t, uint8_t displayStartLine);
+    
+    /**
+     * Set page address.
+     *
+     * @param t Target.
+     * @param addr Address.
+     */
     void setPageAddress(Target t, uint8_t addr);
+
+    /**
+     * Set column address.
+     *
+     * @param t Target.
+     * @param addr Address.
+     */
     void setColumnAddress(Target t, uint8_t addr);
+
+    /**
+     * Read status.
+     *
+     * @param t Target.
+     * @param c Status.
+     */
     void readStatus(Target t, uint8_t *c);
+
+    /**
+     * Write data.
+     *
+     * @param t Target.
+     * @param c Status.
+     */
     void writeData(Target t, uint8_t c);
+
+    /**
+     * Read data.
+     *
+     * @param t Target.
+     * @param c Status.
+     */
     void readData(Target t, uint8_t *c);
+
     static const int PIXEL_X = 128;
     static const int PIXEL_Y = 64;
     static const uint8_t FONT_X = 5;
@@ -83,18 +264,54 @@
     DigitalOut ioCS1;
     DigitalOut ioCS2;
     DigitalOut ioRES;
+
+    /**
+     * Mode of a write data.
+     */
     enum Mode {
         Data,
         Instruction
     };
-    
+
     /*
+     * =======================================================
      * Low Level Interfaces.
+     * =======================================================
+     */
+
+    /**
+     * Set I/O direction to read.
      */
     void setDirectionToRead();
+
+    /**
+     * Set I/O direction to write.
+     */
     void setDirectionToWrite();
+
+    /**
+     * Write data.
+     *
+     * @param t Target.
+     * @param m Mode.
+     * @param c Data.
+     */
     void write(Target t, Mode m, uint8_t c);
+
+    /**
+     * Read data.
+     *
+     * @param t Target.
+     * @param m Mode.
+     * @param c Data.
+     */
     void read(Target t, Mode m, uint8_t *c);
+
+    /**
+     * Reset.
+     *
+     * @param b True if reset active.
+     */
     void reset(bool b);
 };
 
--- a/main.cpp	Tue Jul 20 07:23:15 2010 +0000
+++ b/main.cpp	Tue Aug 10 12:36:05 2010 +0000
@@ -1,8 +1,11 @@
 /**
- * SG12864A Graphics LCD module driver class (Version 0.0.1)
+ * sample program for SG12864A Graphics LCD module driver class (Version 0.0.1)
  *
  * Copyright (C) 2010 Shinichiro Nakamura (CuBeatSystems)
  * http://shinta.main.jp/
+ *
+ * See also ...
+ * http://mbed.org/users/shintamainjp/notebook/sg12864asunlike-display-graphics-lcd-driver/
  */
 
 #include "mbed.h"