Brought over the files from the Freescale site and modified for mbed.

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers LCDHDW.h Source File

LCDHDW.h

00001 /*^^^^^^^^^^^^^^^^   LCD HARDWARE CONECTION 
00002  FB-GD6363AP.h
00003              Marconi Daugther Card to GD-5366AP configuration
00004              8x35 Dot Matrix LCD  + 8 special characters
00005              3 Volts
00006 
00007 ^^^^^^^^^^^^^^^^^^^^^^^^*/
00008 
00009 
00010 
00011 #define _CHARNUM    (35)  //number of chars that can be written
00012 #define _CHAR_SIZE   (6)  // Used only when Dot Matrix is used
00013 #define _LCDTYPE     (1)  //indicate how many LCD_WF are required to write a single Character / or Colum in case of DOT matrix LCD
00014 
00015 
00016 #define  EnableLCDpin(RegNum,LCDn)    LCDPEN##RegNum##_PEN##LCDn = 1
00017 #define  EnableBackplane(RegNum, LCDn)      LCDBPEN##RegNum##_BPEN##LCDn  = 1    
00018 
00019 
00020 // with mask
00021 #define  SetBackplane(ComNum, LCDn)   LCDWF##LCDn  = (1 << (ComNum))
00022                                                       
00023 #define  CharacterPlace(LCDn)        LCDWF##LCDn        // _LCDWF0
00024                         
00025 #define BP_FLAG 0x80 // used to indicate if the WF is used as backplane
00026                                  
00027                                             
00028 // Enable all LCD pins to be used as LCD function  inlcuding Backplanes and Front planes
00029      #define     EnablePin4    EnableLCDpin (5,40)
00030      #define     EnablePin3    EnableLCDpin (5,41)
00031      #define     EnablePin2    EnableLCDpin (5,42)
00032      #define     EnablePin1    EnableLCDpin (5,43)
00033      #define     EnablePin23    EnableLCDpin (0,0)
00034      #define     EnablePin24    EnableLCDpin (0,1)
00035      #define     EnablePin25    EnableLCDpin (0,2)
00036      #define     EnablePin26    EnableLCDpin (0,3)
00037      #define     EnablePin27    EnableLCDpin (0,4)
00038      #define     EnablePin28    EnableLCDpin (0,5)
00039      #define     EnablePin29    EnableLCDpin (0,6)
00040      #define     EnablePin30    EnableLCDpin (0,7)
00041      #define     EnablePin31    EnableLCDpin (1,8)
00042      #define     EnablePin32    EnableLCDpin (1,9)
00043      #define     EnablePin33    EnableLCDpin (1,10)
00044      #define     EnablePin34    EnableLCDpin (1,11)
00045      #define     EnablePin35    EnableLCDpin (1,12)
00046      #define     EnablePin5    EnableLCDpin (4,39)
00047      #define     EnablePin6    EnableLCDpin (4,38)
00048      #define     EnablePin7    EnableLCDpin (4,37)
00049      #define     EnablePin8    EnableLCDpin (4,36)
00050      #define     EnablePin9    EnableLCDpin (4,35)
00051      #define     EnablePin10    EnableLCDpin (4,34)
00052      #define     EnablePin11    EnableLCDpin (4,33)
00053      #define     EnablePin12    EnableLCDpin (4,32)
00054      #define     EnablePin13    EnableLCDpin (3,31)
00055      #define     EnablePin14    EnableLCDpin (3,30)
00056      #define     EnablePin15    EnableLCDpin (3,29)
00057      #define     EnablePin16    EnableLCDpin (3,28)
00058      #define     EnablePin17    EnableLCDpin (3,27)
00059      #define     EnablePin18    EnableLCDpin (3,26)
00060      #define     EnablePin19    EnableLCDpin (3,25)
00061      #define     EnablePin20    EnableLCDpin (3,24)
00062      #define     EnablePin21    EnableLCDpin (2,23)
00063      #define     EnablePin36    EnableLCDpin (1,13)
00064      #define     EnablePin37    EnableLCDpin (1,14)
00065      #define     EnablePin38    EnableLCDpin (1,15)
00066      #define     EnablePin39    EnableLCDpin (2,16)
00067      #define     EnablePin40    EnableLCDpin (2,17)
00068      #define     EnablePin41    EnableLCDpin (2,18)
00069      #define     EnablePin42    EnableLCDpin (2,19)
00070      #define     EnablePin43    EnableLCDpin (2,20)
00071      #define     EnablePin44    EnableLCDpin (2,21)
00072      #define     EnablePin22    EnableLCDpin (2,22)
00073 
00074 
00075 
00076 /*Related with register names */
00077 
00078 
00079 
00080 // Enable the LCD pin like a Backplane functionality 
00081 // (registernumber,LCD pin number)
00082      #define     EnablePin4    EnableLCDpin (5,40)
00083      #define     EnablePin3    EnableLCDpin (5,41)
00084      #define     EnablePin2    EnableLCDpin (5,42)
00085      #define     EnablePin1    EnableLCDpin (5,43)
00086      #define     EnablePin23    EnableLCDpin (0,0)
00087      #define     EnablePin24    EnableLCDpin (0,1)
00088      #define     EnablePin25    EnableLCDpin (0,2)
00089      #define     EnablePin26    EnableLCDpin (0,3)
00090 
00091 
00092 
00093 // Give the mask to the Backplane  
00094 // (ComNumber/BitNumber/priority  segun el LCD manual ,  LCDn)
00095         #define SetCom1         SetBackplane(0,0)
00096         #define SetCom2         SetBackplane(1,1)
00097         #define SetCom3         SetBackplane(2,2)
00098         #define SetCom4         SetBackplane(3,3)
00099         #define SetCom5         SetBackplane(0,0)
00100         #define SetCom6         SetBackplane(1,1)
00101         #define SetCom7         SetBackplane(2,2)
00102         #define SetCom8         SetBackplane(3,3)
00103 
00104 
00105 
00106 
00107 // Indicate how Character is connected to LCDn
00108 
00109 #ifdef GD5602P
00110 #define   Char1        41  // LCD Pin 40
00111 #define   Char2        40  // LCD Pin 39
00112 #define   Char3        39  // LCD Pin 38
00113 #define   Char4        38  // LCD Pin 37
00114 #define   Char5        37  // LCD Pin 36
00115 #define   Char6        36  // LCD Pin 35
00116 #define   Char7        35  // LCD Pin 34
00117 #define   Char8        34  // LCD Pin 33
00118 #define   Char9        33  // LCD Pin 32
00119 #define   Char10        17  // LCD Pin 5
00120 #define   Char11        16  // LCD Pin 6
00121 #define   Char12        15  // LCD Pin 7
00122 #define   Char13        14  // LCD Pin 8
00123 #define   Char14        13  // LCD Pin 9
00124 #define   Char15        12  // LCD Pin 10
00125 #define   Char16        11  // LCD Pin 11
00126 #define   Char17        10  // LCD Pin 12
00127 #define   Char18        9  // LCD Pin 13
00128 #define   Char19        8  // LCD Pin 14
00129 #define   Char20        7  // LCD Pin 15
00130 #define   Char21        6  // LCD Pin 16
00131 #define   Char22        5  // LCD Pin 17
00132 #define   Char23        4  // LCD Pin 18
00133 #define   Char24        3  // LCD Pin 19
00134 #define   Char25        2  // LCD Pin 20
00135 #define   Char26        1  // LCD Pin 21
00136 #define   Char27        32  // LCD Pin 31
00137 #define   Char28        31  // LCD Pin 30
00138 #define   Char29        30  // LCD Pin 29
00139 #define   Char30        29  // LCD Pin 28
00140 #define   Char31        28  // LCD Pin 27
00141 #define   Char32        27  // LCD Pin 26
00142 #define   Char33        26  // LCD Pin 25
00143 #define   Char34        25  // LCD Pin 24
00144 #define   Char35        24  // LCD Pin 23
00145 #define   Char36        0  // LCD Pin 22
00146 #endif
00147 
00148 #ifdef  GD5663AP
00149 #define   CHAR1        0  // LCD Pin 1
00150 #define   CHAR2        1  // LCD Pin 2
00151 #define   CHAR3        2  // LCD Pin 3
00152 #define   CHAR4        3  // LCD Pin 4
00153 #define   CHAR5        4  // LCD Pin 5
00154 #define   CHAR6        5  // LCD Pin 6
00155 #define   CHAR7        6  // LCD Pin 7
00156 #define   CHAR8        7  // LCD Pin 8
00157 #define   CHAR9        8  // LCD Pin 9
00158 #define   CHAR10        9  // LCD Pin 10
00159 #define   CHAR11        10  // LCD Pin 11
00160 #define   CHAR12        11  // LCD Pin 12
00161 #define   CHAR13        12  // LCD Pin 13
00162 #define   CHAR14        13  // LCD Pin 14
00163 #define   CHAR15        14  // LCD Pin 15
00164 #define   CHAR16        15  // LCD Pin 16
00165 #define   CHAR17        16  // LCD Pin 17
00166 #define   CHAR18        17  // LCD Pin 18
00167 #define   CHAR19        18  // LCD Pin 19
00168 #define   CHAR20        19  // LCD Pin 20
00169 #define   CHAR21        20  // LCD Pin 21
00170 #define   CHAR22        21  // LCD Pin 22
00171 #define   CHAR23        32  // LCD Pin 36
00172 #define   CHAR24        33  // LCD Pin 35
00173 #define   CHAR25        34  // LCD Pin 34
00174 #define   CHAR26        35  // LCD Pin 33
00175 #define   CHAR27        36  // LCD Pin 32
00176 #define   CHAR28        37  // LCD Pin 31
00177 #define   CHAR29        38  // LCD Pin 30
00178 #define   CHAR30        39  // LCD Pin 29
00179 #define   CHAR31        40  // LCD Pin 28
00180 #define   CHAR32        41  // LCD Pin 27
00181 #define   CHAR33        42  // LCD Pin 26
00182 #define   CHAR34        43  // LCD Pin 25
00183 #define   CHAR35        44  // LCD Pin 24
00184 #define   CHAR_S1        45  // LCD Pin 23
00185 
00186 #define   CHARCOM0        31  // LCD Pin 37
00187 #define   CHARCOM1        30  // LCD Pin 38
00188 #define   CHARCOM2        29  // LCD Pin 39
00189 #define   CHARCOM3        28  // LCD Pin 40
00190 #define   CHARCOM4        27  // LCD Pin 41
00191 #define   CHARCOM5        26  // LCD Pin 42
00192 #define   CHARCOM6        25  // LCD Pin 43
00193 #define   CHARCOM7        24  // LCD Pin 44
00194 
00195 /* Define which LCDWF are used as backplane (COM0 to COM7 are set as reference but is not configured here */
00196 #define  BP_COM0        31
00197 #define  BP_COM1        30
00198 #define  BP_COM2        29
00199 #define  BP_COM3        28
00200 #define  BP_COM4        27
00201 #define  BP_COM5        26
00202 #define  BP_COM6        25
00203 #define  BP_COM7        24
00204 
00205 #endif
00206 
00207 
00208 
00209 
00210 
00211 
00212 
00213  // *((uint8_t *)&LCD_WF3TO0 + CHAR_S1) |= 0xFF;
00214  // *((uint8_t *)&LCD_WF3TO0 + CHAR_S1) |= 0x00;
00215 
00216 
00217 #define SymbolON(LCDn,bit)     *((uint8 *)&LCD_WF3TO0 + LCDn)  |=  (1<<(bit))         
00218 #define SymbolOFF(LCDn,bit)    *((uint8 *)&LCD_WF3TO0 + LCDn)  &= ~(1<<(bit))         
00219 #define LCD_WF(x)              *((uint8 *)&LCD_WF3TO0 + x) 
00220 
00221 
00222 #define   _LCD_FREESCALE_ON()    SymbolON(CHAR_S1,0)
00223 #define   _LCD_BATTERY_ON()    SymbolON(CHAR_S1,1)
00224 #define   _LCD_LEVEL4_ON()    SymbolON(CHAR_S1,2)
00225 #define   _LCD_LEVEL3_ON()    SymbolON(CHAR_S1,3)
00226 #define   _LCD_LEVEL2_ON()    SymbolON(CHAR_S1,4)
00227 #define   _LCD_LEVEL1_ON()    SymbolON(CHAR_S1,5)
00228 #define   _LCD_SNOW_ON()    SymbolON(CHAR_S1,6)
00229 #define   _LCD_FIRE_ON()    SymbolON(CHAR_S1,7)
00230 
00231 #define   _LCD_FREESCALE_OFF()      SymbolOFF(CHAR_S1,0)
00232 #define   _LCD_BATTERY_OFF()      SymbolOFF(CHAR_S1,1)
00233 #define   _LCD_LEVEL4_OFF()      SymbolOFF(CHAR_S1,2)
00234 #define   _LCD_LEVEL3_OFF()      SymbolOFF(CHAR_S1,3)
00235 #define   _LCD_LEVEL2_OFF()      SymbolOFF(CHAR_S1,4)
00236 #define   _LCD_LEVEL1_OFF()      SymbolOFF(CHAR_S1,5)
00237 #define   _LCD_SNOW_OFF()      SymbolOFF(CHAR_S1,6)
00238 #define   _LCD_FIRE_OFF()      SymbolOFF(CHAR_S1,7)
00239 
00240 
00241 //  (LCDn, BitNumber)
00242 
00243 
00244 
00245 #define MapSegment(SegmentName,Mask)   (1<<(##Mask##)) 
00246           
00247           #define  SEG1               MapSegment (0,0)
00248           #define  SEG2               MapSegment (1,1)
00249           #define  SEG3               MapSegment (2,2)
00250           #define  SEG4               MapSegment (3,3)
00251           #define  SEG5               MapSegment (4,4)
00252           #define  SEG6               MapSegment (5,5)
00253           #define  SEG7               MapSegment (6,6)
00254           #define  SEG8               MapSegment (7,7)
00255           
00256           
00257   
00258 
00259 /*Map segment to COM mask*/
00260 #define  SEGB   0x01
00261 #define  SEGC   0x02
00262 
00263 #define  SEGH   0x01
00264 #define  SEGF   0x02
00265 #define  SEGE   0x04
00266 #define  SEGN   0x08
00267 
00268 #define  SEGA   0x01
00269 #define  SEGJ   0x02
00270 #define  SEGG   0x04
00271 #define  SEGM   0x08
00272 
00273 #define  SEGK   0x01
00274 #define  SEGL   0x02
00275 #define  SEGD   0x04
00276 
00277 
00278 //Ascii table American Standar
00279 #define _ALLON  (SEG1  | SEG2 | SEG3 | SEG4 | SEG5  | SEG6 | SEG7 | SEG8)  
00280