SCLD peripheral of the KL46Z

Dependents:   FRDM-KL46Z LCD rtc Demo KL46Z EE202A_HW1_MH SignalGenerator ... more

Files at this revision

API Documentation at this revision

Comitter:
Tomo2k
Date:
Fri Mar 14 15:13:15 2014 +0000
Parent:
5:6e3c11967108
Child:
7:0e084b33d730
Commit message:
Magic Wand formatted (MBED standard style)

Changed in this revision

FRDM-s401.h Show annotated file Show diff for this revision Revisions of this file
LCDconfig.h Show annotated file Show diff for this revision Revisions of this file
SLCD.cpp Show annotated file Show diff for this revision Revisions of this file
SLCD.h Show annotated file Show diff for this revision Revisions of this file
--- a/FRDM-s401.h	Thu Feb 27 22:02:34 2014 +0000
+++ b/FRDM-s401.h	Fri Mar 14 15:13:15 2014 +0000
@@ -9,7 +9,7 @@
 
 */
 // HARDWARE_CONFIG Changing LCD pins Allows to verify all LCD pins easily
-// if HARDWARE_CONFIG  == 0 FRDM-KL46 RevB 
+// if HARDWARE_CONFIG  == 0 FRDM-KL46 RevB
 // if HARDWARE_CONFIG  == 1 FRDM-KL46 RevA
 #ifdef FRDM_REVA
 #define HARDWARE_CONFIG 1
--- a/LCDconfig.h	Thu Feb 27 22:02:34 2014 +0000
+++ b/LCDconfig.h	Fri Mar 14 15:13:15 2014 +0000
@@ -11,7 +11,7 @@
 #define _LCDALRCLKSOURCE  (0)         // 0 -- External clock       1 --  Alternate clock
 
 #define _LCDCLKPSL        (0)         //  Clock divider to generate the LCD Waveforms 
-#define _LCDSUPPLY        (1) 
+#define _LCDSUPPLY        (1)
 #define _LCDHREF          (0)         // 0 or 1 
 #define _LCDCLKSOURCE     (1)         // 0 -- External clock       1 --  Alternate clock
 #define _LCDLCK           (1)         //Any number between 0 and 7 
@@ -23,7 +23,7 @@
 #define _LCDCLKSOURCE     (1)         // 0 -- External clock       1 --  Alternate clock
 #define _LCDALRCLKSOURCE  (0)         // 0 -- External clock       1 --  Alternate clock
 #define _LCDCLKPSL        (0)         // Clock divider to generate the LCD Waveforms 
-#define _LCDSUPPLY        (0) 
+#define _LCDSUPPLY        (0)
 #define _LCDLOADADJUST    (3)         // CPSEL = 1     0 -- 8000 pf 1 -- 6000 pf  2 -- 4000 pf  3 -- 2000 pf
 #define _LCDALTDIV        (0)         // CPSEL = 1     0 -- 8000 pf 1 -- 6000 pf  2 -- 4000 pf  3 -- 2000 pf
 #define _LCDRVTRIM        (0)         // CPSEL = 1     0 -- 8000 pf 1 -- 6000 pf  2 -- 4000 pf  3 -- 2000 pf
@@ -40,27 +40,27 @@
 
 /*~|~|~|~|~|~|~|~|~|~|~|~|~|~  LCD  Control Register 0  ~|~|~|~|~|~|~|~|~|~|~|~|~*/
 /*~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|*/
-#define _LCDINTENABLE          (1)    
+#define _LCDINTENABLE          (1)
 
 /*~|~|~|~|~|~|~|~|~|~|~|~|~|~  LCD  Control Register 1  ~|~|~|~|~|~|~|~|~|~|~|~|~|*/
 /*~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|*/
 #define _LCDFRAMEINTERRUPT     (0)     //0 Disable Frame Frequency Interrupt
-                                            //1 Enable an LCD interrupt that coincides with the LCD frame frequency
+//1 Enable an LCD interrupt that coincides with the LCD frame frequency
 #define _LCDFULLCPLDIRIVE      (0)     // 0 GPIO shared with the LCD. Inputs levels and internal pullup reference to VDD
-                                            // 1 If VSUPPLY=11and RVEN=0. Inputs levels and internal pullup reference to VLL3
+// 1 If VSUPPLY=11and RVEN=0. Inputs levels and internal pullup reference to VLL3
 #define _LCDWAITMODE           (0)     // 0 Allows the LCD driver and charge pump to continue running during wait mode
-                                            //  1 Disable the LCD when the MCU goes into wait mode
+//  1 Disable the LCD when the MCU goes into wait mode
 #define _LCDSTOPMODE           (0)     // 0 Allows the LCD driver and charge pump to continue running during stop2 or stop3
-                                            //  1 Disable the LCD when and charge pump when the MCU goes into stop2 or stop3                                                               
+//  1 Disable the LCD when and charge pump when the MCU goes into stop2 or stop3
 
 /*~|~|~|~|~|~|~|~|~|~|~|~|~|~  LCD  Voltage Supply Register  ~|~|~|~|~|~|~|~|~|~|~|~*/
 /*~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|*/
 #define _LCDHIGHREF             (0)    //0 Divide input VIREG=1.0v
-                                            //1 Do not divide the input VIREG=1.67v
+//1 Do not divide the input VIREG=1.67v
 #define _LCDBBYPASS             (0)    //Determines whether the internal LCD op amp buffer is bypassed
-                                            //0 Buffered mode
-                                            //1 Unbuffered mode
-                            
+//0 Buffered mode
+//1 Unbuffered mode
+
 /*~|~|~|~|~|~|~|~|~|~|~|~|~|~  LCD  Regulated Voltage Control |~|~|~|~|~|~|~|~|~|~*/
 /*~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|*/
 #define _LCDCONTRAST            (1)       //Contrast by software   0 -- Disable    1-- Enable
@@ -69,13 +69,13 @@
 /*~|~|~|~|~|~|~|~|~|~|~|~|~|~  LCD  Blink Control Register ~|~|~|~|~|~|~|~|~|~|~|~*/
 /*~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|~|*/
 #define _LCDBLINKCONTROL        (1)     //0 Disable blink mode
-                                            //1 Enable blink mode
+//1 Enable blink mode
 #define _LCDALTMODE             (0)     //0 Normal display 
-                                            //1 Alternate display for 4 backplanes or less the LCD backplane sequencer changes to otuput an alternate display
+//1 Alternate display for 4 backplanes or less the LCD backplane sequencer changes to otuput an alternate display
 #define _LCDBLANKDISP           (0)     //0 Do not blank display
-                                            //1 Blank display if you put it in 0 the text before blank is manteined     
+//1 Blank display if you put it in 0 the text before blank is manteined
 #define _LCDBLINKMODE           (0)     //0 Display blank during the blink period 
-                                            //1 Display alternate displat during blink period (Ignored if duty is 5 or greater)
+//1 Display alternate displat during blink period (Ignored if duty is 5 or greater)
 
 
 //Calculated values
@@ -83,8 +83,8 @@
 #define _LCDDUTY       (_LCDBACKPLANES-1)         //Any number between 0 and 7 
 #define  LCD_WF_BASE    LCD->WF8B[0]
 
-// General definitions used by the LCD library         
-#define  LCD_WF(x)              *((uint8 *)&LCD_WF_BASE + x) 
+// General definitions used by the LCD library
+#define  LCD_WF(x)              *((uint8 *)&LCD_WF_BASE + x)
 
 /*LCD Fault Detections Consts*/
 #define  FP_TYPE  0x00         // pin is a Front Plane
@@ -95,12 +95,12 @@
 #define FDPRS_2      1
 #define FDPRS_4      2
 #define FDPRS_8      3
-#define FDPRS_16     4 
+#define FDPRS_16     4
 #define FDPRS_32     5
 #define FDPRS_64     6
 #define FDPRS_128    7
 
-// Fault Detect Sample Window Width Values  
+// Fault Detect Sample Window Width Values
 #define FDSWW_4           0
 #define FDSWW_8           1
 #define FDSWW_16          2
--- a/SLCD.cpp	Thu Feb 27 22:02:34 2014 +0000
+++ b/SLCD.cpp	Fri Mar 14 15:13:15 2014 +0000
@@ -2,257 +2,273 @@
 #include "LCDconfig.h"
 
 
-const uint8_t WF_ORDERING_TABLE[ ] =
-{
-   CHAR1a,   // LCD81 --- Pin:5  LCDnAddress=51
-   CHAR1b,   // LCD82 --- Pin:6  LCDnAddress=52
-   CHAR2a,   // LCD83 --- Pin:7  LCDnAddress=53
-   CHAR2b,   // LCD84 --- Pin:8  LCDnAddress=54
-   CHAR3a,   // LCD85 --- Pin:9  LCDnAddress=55
-   CHAR3b,   // LCD86 --- Pin:10 LCDnAddress=56
-   CHAR4a,   // LCD87 --- Pin:11 LCDnAddress=57
-   CHAR4b,   // LCD88 --- Pin:12 LCDnAddress=58
-   CHARCOM0, // LCD77 --- Pin:1  LCDnAddress=4D
-   CHARCOM1, // LCD78 --- Pin:2  LCDnAddress=4E
-   CHARCOM2, // LCD79 --- Pin:3  LCDnAddress=4F
-   CHARCOM3, // LCD80 --- Pin:4  LCDnAddress=50
+const uint8_t WF_ORDERING_TABLE[ ] = {
+    CHAR1a,   // LCD81 --- Pin:5  LCDnAddress=51
+    CHAR1b,   // LCD82 --- Pin:6  LCDnAddress=52
+    CHAR2a,   // LCD83 --- Pin:7  LCDnAddress=53
+    CHAR2b,   // LCD84 --- Pin:8  LCDnAddress=54
+    CHAR3a,   // LCD85 --- Pin:9  LCDnAddress=55
+    CHAR3b,   // LCD86 --- Pin:10 LCDnAddress=56
+    CHAR4a,   // LCD87 --- Pin:11 LCDnAddress=57
+    CHAR4b,   // LCD88 --- Pin:12 LCDnAddress=58
+    CHARCOM0, // LCD77 --- Pin:1  LCDnAddress=4D
+    CHARCOM1, // LCD78 --- Pin:2  LCDnAddress=4E
+    CHARCOM2, // LCD79 --- Pin:3  LCDnAddress=4F
+    CHARCOM3, // LCD80 --- Pin:4  LCDnAddress=50
 };
 
-const char ASCII_TO_WF_CODIFICATION_TABLE [ ] =
-{
- 
- /*
-                segA
-              ________  
-             |        | 
-        segF |        | segB
-             |        |
-              -segG--
-             |        |
-        segE |        | segC
-             |________|
-                segD
- */   
-    
-( SEGD+ SEGE+ SEGF+!SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = 0,   offset=0
-(!SEGD+!SEGE+!SEGF+!SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = 1,   offset=4
-( SEGD+ SEGE+!SEGF+ SEGG) , (!SEGC+ SEGB+ SEGA) ,//Char = 2,   offset=8
-( SEGD+!SEGE+!SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = 3,   offset=12
-(!SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = 4,   offset=16
-( SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+ SEGA) ,//Char = 5,   offset=20
-( SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+ SEGA) ,//Char = 6,   offset=24
-(!SEGD+!SEGE+!SEGF+!SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = 7,   offset=28
-( SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = 8,   offset=32
-( SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = 9,   offset=36
-(!SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = :,   offset=40
-(!SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = ;,   offset=44
-(!SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = <,   offset=48
-( SEGD+!SEGE+!SEGF+ SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = =,   offset=52
-(!SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = >,   offset=56
-(!SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = ?,   offset=60
-( SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = @,   offset=64
-(!SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = A,   offset=68
-( SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+!SEGA) ,//Char = B,   offset=72
-( SEGD+ SEGE+ SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = C,   offset=76
-( SEGD+ SEGE+!SEGF+ SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = D,   offset=80
-( SEGD+ SEGE+ SEGF+ SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = E,   offset=84
-(!SEGD+ SEGE+ SEGF+ SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = F,   offset=88
-( SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+ SEGA) ,//Char = G,   offset=92
-(!SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = H,   offset=96
-(!SEGD+!SEGE+!SEGF+!SEGG) , ( SEGC+!SEGB+!SEGA) ,//Char = I,   offset=100
-( SEGD+ SEGE+!SEGF+!SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = J,   offset=104
-(!SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+ SEGA) ,//Char = K,   offset=108
-( SEGD+ SEGE+ SEGF+!SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = L,   offset=112
-(!SEGD+ SEGE+ SEGF+!SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = M,   offset=116
-(!SEGD+ SEGE+!SEGF+ SEGG) , ( SEGC+!SEGB+!SEGA) ,//Char = N,   offset=120
-( SEGD+ SEGE+!SEGF+ SEGG) , ( SEGC+!SEGB+!SEGA) ,//Char = O,   offset=124
-(!SEGD+ SEGE+ SEGF+ SEGG) , (!SEGC+ SEGB+ SEGA) ,//Char = P,   offset=128
-( SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = Q,   offset=132
-(!SEGD+ SEGE+!SEGF+ SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = R,   offset=136
-( SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+ SEGA) ,//Char = S,   offset=140
-( SEGD+ SEGE+ SEGF+ SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = T,   offset=144
-( SEGD+ SEGE+ SEGF+!SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = U,   offset=148
-( SEGD+ SEGE+!SEGF+!SEGG) , ( SEGC+!SEGB+!SEGA) ,//Char = V,   offset=152
-( SEGD+ SEGE+ SEGF+!SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = W,   offset=156
-(!SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = X,   offset=160
-( SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = Y,   offset=164
-( SEGD+!SEGE+!SEGF+ SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = Z,   offset=168
-( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = [,   offset=172
-( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = \,   offset=176
-( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = ],   offset=180
-( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = ^,   offset=184
-( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = _,   offset=188
-( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = `,   offset=192
+const char ASCII_TO_WF_CODIFICATION_TABLE [ ] = {
+
+    /*
+                   segA
+                 ________
+                |        |
+           segF |        | segB
+                |        |
+                 -segG--
+                |        |
+           segE |        | segC
+                |________|
+                   segD
+    */
+
+    ( SEGD+ SEGE+ SEGF+!SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = 0,   offset=0
+    (!SEGD+!SEGE+!SEGF+!SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = 1,   offset=4
+    ( SEGD+ SEGE+!SEGF+ SEGG) , (!SEGC+ SEGB+ SEGA) ,//Char = 2,   offset=8
+    ( SEGD+!SEGE+!SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = 3,   offset=12
+    (!SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = 4,   offset=16
+    ( SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+ SEGA) ,//Char = 5,   offset=20
+    ( SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+ SEGA) ,//Char = 6,   offset=24
+    (!SEGD+!SEGE+!SEGF+!SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = 7,   offset=28
+    ( SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = 8,   offset=32
+    ( SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = 9,   offset=36
+    (!SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = :,   offset=40
+    (!SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = ;,   offset=44
+    (!SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = <,   offset=48
+    ( SEGD+!SEGE+!SEGF+ SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = =,   offset=52
+    (!SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = >,   offset=56
+    (!SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = ?,   offset=60
+    ( SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = @,   offset=64
+    (!SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = A,   offset=68
+    ( SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+!SEGA) ,//Char = B,   offset=72
+    ( SEGD+ SEGE+ SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = C,   offset=76
+    ( SEGD+ SEGE+!SEGF+ SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = D,   offset=80
+    ( SEGD+ SEGE+ SEGF+ SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = E,   offset=84
+    (!SEGD+ SEGE+ SEGF+ SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = F,   offset=88
+    ( SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+ SEGA) ,//Char = G,   offset=92
+    (!SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = H,   offset=96
+    (!SEGD+!SEGE+!SEGF+!SEGG) , ( SEGC+!SEGB+!SEGA) ,//Char = I,   offset=100
+    ( SEGD+ SEGE+!SEGF+!SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = J,   offset=104
+    (!SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+ SEGA) ,//Char = K,   offset=108
+    ( SEGD+ SEGE+ SEGF+!SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = L,   offset=112
+    (!SEGD+ SEGE+ SEGF+!SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = M,   offset=116
+    (!SEGD+ SEGE+!SEGF+ SEGG) , ( SEGC+!SEGB+!SEGA) ,//Char = N,   offset=120
+    ( SEGD+ SEGE+!SEGF+ SEGG) , ( SEGC+!SEGB+!SEGA) ,//Char = O,   offset=124
+    (!SEGD+ SEGE+ SEGF+ SEGG) , (!SEGC+ SEGB+ SEGA) ,//Char = P,   offset=128
+    ( SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+ SEGA) ,//Char = Q,   offset=132
+    (!SEGD+ SEGE+!SEGF+ SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = R,   offset=136
+    ( SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+!SEGB+ SEGA) ,//Char = S,   offset=140
+    ( SEGD+ SEGE+ SEGF+ SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = T,   offset=144
+    ( SEGD+ SEGE+ SEGF+!SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = U,   offset=148
+    ( SEGD+ SEGE+!SEGF+!SEGG) , ( SEGC+!SEGB+!SEGA) ,//Char = V,   offset=152
+    ( SEGD+ SEGE+ SEGF+!SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = W,   offset=156
+    (!SEGD+ SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = X,   offset=160
+    ( SEGD+!SEGE+ SEGF+ SEGG) , ( SEGC+ SEGB+!SEGA) ,//Char = Y,   offset=164
+    ( SEGD+!SEGE+!SEGF+ SEGG) , (!SEGC+!SEGB+!SEGA) ,//Char = Z,   offset=168
+    ( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = [,   offset=172
+    ( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = \,   offset=176
+    ( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = ],   offset=180
+    ( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = ^,   offset=184
+    ( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = _,   offset=188
+    ( SEGD+!SEGE+!SEGF+!SEGG) , (!SEGC+!SEGB+ SEGA) ,//Char = `,   offset=192
 };
 
-SLCD::SLCD() {
+SLCD::SLCD()
+{
     init();
-    CharPosition = 0;    
+    CharPosition = 0;
 }
 
-void SLCD::init(){
+void SLCD::init()
+{
     SIM->SCGC5 |= SIM_SCGC5_SLCD_MASK | SIM_SCGC5_PORTB_MASK | SIM_SCGC5_PORTC_MASK | SIM_SCGC5_PORTD_MASK | SIM_SCGC5_PORTE_MASK;
-     
-    // configure pins for LCD operation    
-  PORTC->PCR[20] = 0x00000000;     //VLL2
-  PORTC->PCR[21] = 0x00000000;     //VLL1
-  PORTC->PCR[22] = 0x00000000;     //VCAP2
-  PORTC->PCR[23] = 0x00000000;     //VCAP1     
-    // Enable IRCLK 
-     MCG->C1  |= MCG_C1_IRCLKEN_MASK | MCG_C1_IREFSTEN_MASK;
-     MCG->C2  |= MCG_C2_IRCS_MASK ;  //0 32KHZ internal reference clock; 1= 4MHz irc
-     
-     //Check if the Fast reference has its divide by 2 enabled (default):
-     if ((MCG->SC & MCG_SC_FCRDIV_MASK) != 1<<1)
-        error("Invalid clock configuration for SLCD\n"); 
-     LCD->GCR = 0x0;
-     LCD->AR  = 0x0;   
+
+    // configure pins for LCD operation
+    PORTC->PCR[20] = 0x00000000;     //VLL2
+    PORTC->PCR[21] = 0x00000000;     //VLL1
+    PORTC->PCR[22] = 0x00000000;     //VCAP2
+    PORTC->PCR[23] = 0x00000000;     //VCAP1
+    // Enable IRCLK
+    MCG->C1  |= MCG_C1_IRCLKEN_MASK | MCG_C1_IREFSTEN_MASK;
+    MCG->C2  |= MCG_C2_IRCS_MASK ;  //0 32KHZ internal reference clock; 1= 4MHz irc
 
-    // LCD configurartion     
-      LCD->GCR =   ( LCD_GCR_RVEN_MASK*_LCDRVEN  
+    //Check if the Fast reference has its divide by 2 enabled (default):
+    if ((MCG->SC & MCG_SC_FCRDIV_MASK) != 1<<1)
+        error("Invalid clock configuration for SLCD\n");
+    LCD->GCR = 0x0;
+    LCD->AR  = 0x0;
+
+    // LCD configurartion
+    LCD->GCR =   ( LCD_GCR_RVEN_MASK*_LCDRVEN
                    | LCD_GCR_RVTRIM(_LCDRVTRIM)         //0-15
-                   | LCD_GCR_CPSEL_MASK*_LCDCPSEL 
+                   | LCD_GCR_CPSEL_MASK*_LCDCPSEL
                    | LCD_GCR_LADJ(_LCDLOADADJUST)       //0-3
                    | LCD_GCR_VSUPPLY_MASK*_LCDSUPPLY    //0-1
                    |!LCD_GCR_FDCIEN_MASK
                    | LCD_GCR_ALTDIV(1)         //divide by something
-                   |!LCD_GCR_LCDDOZE_MASK  
+                   |!LCD_GCR_LCDDOZE_MASK
                    |!LCD_GCR_LCDSTP_MASK
                    |!LCD_GCR_LCDEN_MASK                 //WILL BE ENABLE ON SUBSEQUENT STEP
                    | LCD_GCR_SOURCE_MASK*1
-                   | LCD_GCR_ALTSOURCE_MASK*0  
+                   | LCD_GCR_ALTSOURCE_MASK*0
                    | LCD_GCR_LCLK(0)    //0-7
                    | LCD_GCR_DUTY(_LCDDUTY)   //0-7
-                 );    
-   uint8_t i;
-   uint32_t *p_pen;
-   uint8_t pen_offset;   // 0 or 1   
-   uint8_t pen_bit;      // 0 to 31
-   LCD->PEN[0] = 0x0;
-   LCD->PEN[1] = 0x0;
-   LCD->BPEN[0] = 0x0;
-   LCD->BPEN[1] = 0x0;   
-   p_pen = (uint32_t *)&LCD->PEN[0];
-    for (i=0;i<_LCDUSEDPINS;i++) 
-    {
-      pen_offset = WF_ORDERING_TABLE[i]/32;
-      pen_bit    = WF_ORDERING_TABLE[i]%32;
-      p_pen[pen_offset] |= 1 << pen_bit;
-      if (i>= _LCDFRONTPLANES)    // Pin is a backplane
-      {
-        p_pen[pen_offset+2] |= 1 << pen_bit;  // Enable  BPEN 
-        LCD->WF8B[(uint8_t)WF_ORDERING_TABLE[i]] = 1 << (i - _LCDFRONTPLANES);   // fill with 0x01, 0x02, etc 
-      } 
-    }    
-      LCD->GCR |= LCD_GCR_LCDEN_MASK;
+                 );
+    uint8_t i;
+    uint32_t *p_pen;
+    uint8_t pen_offset;   // 0 or 1
+    uint8_t pen_bit;      // 0 to 31
+    LCD->PEN[0] = 0x0;
+    LCD->PEN[1] = 0x0;
+    LCD->BPEN[0] = 0x0;
+    LCD->BPEN[1] = 0x0;
+    p_pen = (uint32_t *)&LCD->PEN[0];
+    for (i=0; i<_LCDUSEDPINS; i++) {
+        pen_offset = WF_ORDERING_TABLE[i]/32;
+        pen_bit    = WF_ORDERING_TABLE[i]%32;
+        p_pen[pen_offset] |= 1 << pen_bit;
+        if (i>= _LCDFRONTPLANES) {  // Pin is a backplane
+            p_pen[pen_offset+2] |= 1 << pen_bit;  // Enable  BPEN
+            LCD->WF8B[(uint8_t)WF_ORDERING_TABLE[i]] = 1 << (i - _LCDFRONTPLANES);   // fill with 0x01, 0x02, etc
+        }
+    }
+    LCD->GCR |= LCD_GCR_LCDEN_MASK;
 }
 
-int SLCD::_putc(int c) {
+int SLCD::_putc(int c)
+{
     Write_Char(c);
     return 0;
 }
 
-void SLCD::Write_Char (char lbValue) {
-  uint8_t char_val;
-  uint8_t temp;
-  uint8_t *lbpLCDWF;
-  uint8_t lbCounter;
-  uint16_t arrayOffset;
-  uint8_t position;
-  
-  if (CharPosition >= _CHARNUM)
-    CharPosition = 0;  
-  lbpLCDWF = (uint8_t *)&LCD->WF8B[0];
-  /* only ascii character if value not writeable write as @ */
-  if (lbValue>='a' && lbValue<='z') {
-    lbValue -= 32; // UpperCase
-  }
-  if (lbValue<ASCCI_TABLE_START || lbValue >ASCCI_TABLE_END) {
-    lbValue = BLANK_CHARACTER;  // default value as space
-  }
-  lbValue -=ASCCI_TABLE_START;        // Remove the offset to search in the ascci table
-  arrayOffset = (lbValue * _CHAR_SIZE); // Compensate matrix offset
-  // ensure bLCD position is in valid limit
-  lbCounter = 0;  //number of writings to complete one char
-  while (lbCounter<_CHAR_SIZE) {
-    position = (CharPosition) *_LCDTYPE + lbCounter; 
-    temp=0;
-    if (lbCounter==1) {
-      temp = lbpLCDWF[WF_ORDERING_TABLE[position]] & 0x01;//bit 0 has the special symbol information
-    } 
-    char_val = ASCII_TO_WF_CODIFICATION_TABLE[arrayOffset + lbCounter];
-    lbpLCDWF[WF_ORDERING_TABLE[position]] = char_val | temp;
-    //  if (char_val==0) lbCounter = _CHAR_SIZE; //end of this character
-    lbCounter++;
-  }  
-  CharPosition++;
+void SLCD::Write_Char (char lbValue)
+{
+    uint8_t char_val;
+    uint8_t temp;
+    uint8_t *lbpLCDWF;
+    uint8_t lbCounter;
+    uint16_t arrayOffset;
+    uint8_t position;
+
+    if (CharPosition >= _CHARNUM)
+        CharPosition = 0;
+    lbpLCDWF = (uint8_t *)&LCD->WF8B[0];
+    /* only ascii character if value not writeable write as @ */
+    if (lbValue>='a' && lbValue<='z') {
+        lbValue -= 32; // UpperCase
+    }
+    if (lbValue<ASCCI_TABLE_START || lbValue >ASCCI_TABLE_END) {
+        lbValue = BLANK_CHARACTER;  // default value as space
+    }
+    lbValue -=ASCCI_TABLE_START;        // Remove the offset to search in the ascci table
+    arrayOffset = (lbValue * _CHAR_SIZE); // Compensate matrix offset
+    // ensure bLCD position is in valid limit
+    lbCounter = 0;  //number of writings to complete one char
+    while (lbCounter<_CHAR_SIZE) {
+        position = (CharPosition) *_LCDTYPE + lbCounter;
+        temp=0;
+        if (lbCounter==1) {
+            temp = lbpLCDWF[WF_ORDERING_TABLE[position]] & 0x01;//bit 0 has the special symbol information
+        }
+        char_val = ASCII_TO_WF_CODIFICATION_TABLE[arrayOffset + lbCounter];
+        lbpLCDWF[WF_ORDERING_TABLE[position]] = char_val | temp;
+        //  if (char_val==0) lbCounter = _CHAR_SIZE; //end of this character
+        lbCounter++;
+    }
+    CharPosition++;
 }
 
 void SLCD::Home (void)
- {
-      CharPosition =  0;
- }
+{
+    CharPosition =  0;
+}
 
 void SLCD::Contrast (uint8_t lbContrast)
-{ 
-       lbContrast &= 0x0F;              //Forced to the only values accepted 
-       LCD->GCR |= LCD_GCR_RVTRIM(lbContrast);
+{
+    lbContrast &= 0x0F;              //Forced to the only values accepted
+    LCD->GCR |= LCD_GCR_RVTRIM(lbContrast);
 }
- 
+
 void SLCD::All_Segments (int mode)
 {
- uint8_t lbTotalBytes = _CHARNUM * _LCDTYPE;              
- uint8_t lbCounter=0;
- uint8_t *lbpLCDWF;
- 
-    lbpLCDWF = (uint8_t *)&LCD->WF8B[0];      
-        while (lbCounter < lbTotalBytes)
-          {
-              if (mode==1){lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[lbCounter++]]=_ALLON;}
-                else {lbpLCDWF[WF_ORDERING_TABLE[lbCounter++]]=0;}
-          }         
+    uint8_t lbTotalBytes = _CHARNUM * _LCDTYPE;
+    uint8_t lbCounter=0;
+    uint8_t *lbpLCDWF;
+
+    lbpLCDWF = (uint8_t *)&LCD->WF8B[0];
+    while (lbCounter < lbTotalBytes) {
+        if (mode==1) {
+            lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[lbCounter++]]=_ALLON;
+        } else {
+            lbpLCDWF[WF_ORDERING_TABLE[lbCounter++]]=0;
+        }
+    }
 }
 
 void SLCD::DP1 (int mode)
 {
-  uint8_t *lbpLCDWF; 
-    lbpLCDWF = (uint8_t *)&LCD->WF8B[0];       
-        if (mode==1){lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[1]]|=1;}
-            else {lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[1]]&=~1;}                
+    uint8_t *lbpLCDWF;
+    lbpLCDWF = (uint8_t *)&LCD->WF8B[0];
+    if (mode==1) {
+        lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[1]]|=1;
+    } else {
+        lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[1]]&=~1;
+    }
 }
- 
+
 void SLCD::DP2 (int mode)
 {
-  uint8_t *lbpLCDWF; 
-    lbpLCDWF = (uint8_t *)&LCD->WF8B[0];       
-        if (mode==1){lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[3]]|=1;}
-            else {lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[3]]&=~1;}               
-} 
+    uint8_t *lbpLCDWF;
+    lbpLCDWF = (uint8_t *)&LCD->WF8B[0];
+    if (mode==1) {
+        lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[3]]|=1;
+    } else {
+        lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[3]]&=~1;
+    }
+}
 
 void SLCD::DP3 (int mode)
 {
-  uint8_t *lbpLCDWF; 
+    uint8_t *lbpLCDWF;
     lbpLCDWF = (uint8_t *)&LCD->WF8B[0];
-        if (mode==1){lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[5]]|=1;}
-            else {lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[5]]&=~1;}
+    if (mode==1) {
+        lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[5]]|=1;
+    } else {
+        lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[5]]&=~1;
+    }
 }
- 
+
 void SLCD::Colon (int mode)
 {
-  uint8_t *lbpLCDWF; 
-    lbpLCDWF = (uint8_t *)&LCD->WF8B[0];     
-        if (mode==1){lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[7]]|=1;}
-            else {lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[7]]&=~1;}                 
+    uint8_t *lbpLCDWF;
+    lbpLCDWF = (uint8_t *)&LCD->WF8B[0];
+    if (mode==1) {
+        lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[7]]|=1;
+    } else {
+        lbpLCDWF[(uint8_t)WF_ORDERING_TABLE[7]]&=~1;
+    }
 }
- 
-void SLCD::blink(int blink) {
+
+void SLCD::blink(int blink)
+{
     if (( blink > 7) || (blink < 0))
         LCD->AR &= ~LCD_AR_BLINK_MASK;
     else
         LCD->AR |= LCD_AR_BLINK_MASK | blink;
 }
-    
-void SLCD::deepsleepEnable(bool enable) {
+
+void SLCD::deepsleepEnable(bool enable)
+{
     MCG->C1 &= ~MCG_C1_IREFSTEN_MASK;
     MCG->C1 |= enable << MCG_C1_IREFSTEN_SHIFT;
     LCD->GCR &= ~LCD_GCR_LCDSTP_MASK;
--- a/SLCD.h	Thu Feb 27 22:02:34 2014 +0000
+++ b/SLCD.h	Fri Mar 14 15:13:15 2014 +0000
@@ -5,15 +5,15 @@
 
     #include "mbed.h"
     #include "SLCD.h"
-    
+
     SLCD slcd;
-    
+
     main()
     {
         slcd.printf("1234");    // standard printf function, only charaters in ASCII_TO_WF_CODIFICATION_TABLE will display
-        slcd.putc("A");         // prints a single character 
+        slcd.putc("A");         // prints a single character
         slcd.Write_Char('A');   // prints a single character
-        slcd.All_Segments(y);   // y=1 for ALL segments on, 0 for ALL segments off  
+        slcd.All_Segments(y);   // y=1 for ALL segments on, 0 for ALL segments off
         slcd.DPx(y);            // x=DP1 to DP3, y=1 for on 0 for off
         slcd.Colon(y);          // y=1 for on, 0 for off
         slcd.CharPosition=x;    // x=0 to 3, 0 is start position
@@ -21,29 +21,30 @@
         slcd.Contrast (x);      // set contrast x=0 - 15, 0 lightest, 15 darkest
         slcd.blink(x);          // set display to blink, 0-7 is blink rate (default = 3), -1 disables blink
         slcd.deepsleepEnable(x);// true (default) keeps the lcd enabled in deepsleep, false disables its 4MHz internal oscillator clock. Total power consumption ~= 40uA
-    }   
+    }
 */
 
-class SLCD : public Stream {
-    public:
+class SLCD : public Stream
+{
+public:
     SLCD();
-    
+
     void Home (void);
     void Contrast (uint8_t lbContrast);
-    void All_Segments (int);     
+    void All_Segments (int);
     void DP1 (int);
     void DP2 (int);
     void DP3 (int);
-    void Colon (int);     
+    void Colon (int);
     uint8_t CharPosition;
     void blink(int blink = 3);
     void deepsleepEnable(bool enable);
-    
-    private:
+
+private:
     void Write_Char(char lbValue);
     void init();
     virtual int _putc(int c);
     virtual int _getc() {
         return 0;
-    }  
+    }
 };