Dependencies: EthernetNetIf NTPClient_NetServices mbed
display.c@0:f49394bec833, 2011-12-11 (annotated)
- Committer:
- suupen
- Date:
- Sun Dec 11 00:24:18 2011 +0000
- Revision:
- 0:f49394bec833
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
suupen | 0:f49394bec833 | 1 | /***********************************************************************/ |
suupen | 0:f49394bec833 | 2 | /* */ |
suupen | 0:f49394bec833 | 3 | /* display.c */ |
suupen | 0:f49394bec833 | 4 | /* */ |
suupen | 0:f49394bec833 | 5 | /***********************************************************************/ |
suupen | 0:f49394bec833 | 6 | #define _DISPLAY_C |
suupen | 0:f49394bec833 | 7 | |
suupen | 0:f49394bec833 | 8 | #include "display.h" |
suupen | 0:f49394bec833 | 9 | |
suupen | 0:f49394bec833 | 10 | /*****************************Macro definition********************************/ |
suupen | 0:f49394bec833 | 11 | |
suupen | 0:f49394bec833 | 12 | /*****************************Global variable*********************************/ |
suupen | 0:f49394bec833 | 13 | |
suupen | 0:f49394bec833 | 14 | /******************************Function declaration***************************/ |
suupen | 0:f49394bec833 | 15 | static bool_t display_positionCheck(_DISPLAYPOSITION *c); |
suupen | 0:f49394bec833 | 16 | static bool_t display_colorCheck(_DISPLAYCOLOR *c); |
suupen | 0:f49394bec833 | 17 | |
suupen | 0:f49394bec833 | 18 | /****************************************************************************** |
suupen | 0:f49394bec833 | 19 | Name : hyoji zahyo no hani check |
suupen | 0:f49394bec833 | 20 | Parameters : none |
suupen | 0:f49394bec833 | 21 | Returns : nothing |
suupen | 0:f49394bec833 | 22 | Description: D_display[][][] = 0x00 |
suupen | 0:f49394bec833 | 23 | ******************************************************************************/ |
suupen | 0:f49394bec833 | 24 | static bool_t display_positionCheck(_DISPLAYPOSITION *p) |
suupen | 0:f49394bec833 | 25 | { |
suupen | 0:f49394bec833 | 26 | bool_t ans = TRUE; |
suupen | 0:f49394bec833 | 27 | |
suupen | 0:f49394bec833 | 28 | if((*p).x < Z_displayXMin){ans = FALSE;} |
suupen | 0:f49394bec833 | 29 | if((*p).x > Z_displayXMax){ans = FALSE;} |
suupen | 0:f49394bec833 | 30 | |
suupen | 0:f49394bec833 | 31 | if((*p).y < Z_displayXMin){ans = FALSE;} |
suupen | 0:f49394bec833 | 32 | if((*p).y > Z_displayXMax){ans = FALSE;} |
suupen | 0:f49394bec833 | 33 | |
suupen | 0:f49394bec833 | 34 | return ans; |
suupen | 0:f49394bec833 | 35 | } |
suupen | 0:f49394bec833 | 36 | /****************************************************************************** |
suupen | 0:f49394bec833 | 37 | Name : hyoji color no hani check |
suupen | 0:f49394bec833 | 38 | Parameters : none |
suupen | 0:f49394bec833 | 39 | Returns : nothing |
suupen | 0:f49394bec833 | 40 | Description: D_display[][][] = 0x00 |
suupen | 0:f49394bec833 | 41 | ******************************************************************************/ |
suupen | 0:f49394bec833 | 42 | static bool_t display_colorCheck(_DISPLAYCOLOR *c) |
suupen | 0:f49394bec833 | 43 | { |
suupen | 0:f49394bec833 | 44 | bool_t ans = TRUE; |
suupen | 0:f49394bec833 | 45 | |
suupen | 0:f49394bec833 | 46 | if((*c).g < Z_colorMin){ans = FALSE;} |
suupen | 0:f49394bec833 | 47 | if((*c).g > Z_colorNull){ans = FALSE;} |
suupen | 0:f49394bec833 | 48 | |
suupen | 0:f49394bec833 | 49 | if((*c).r < Z_colorMin){ans = FALSE;} |
suupen | 0:f49394bec833 | 50 | if((*c).r > Z_colorNull){ans = FALSE;} |
suupen | 0:f49394bec833 | 51 | |
suupen | 0:f49394bec833 | 52 | return ans; |
suupen | 0:f49394bec833 | 53 | } |
suupen | 0:f49394bec833 | 54 | |
suupen | 0:f49394bec833 | 55 | /****************************************************************************** |
suupen | 0:f49394bec833 | 56 | Name : display_clr() |
suupen | 0:f49394bec833 | 57 | Parameters : none |
suupen | 0:f49394bec833 | 58 | Returns : nothing |
suupen | 0:f49394bec833 | 59 | Description: D_display[][][] = 0x00 |
suupen | 0:f49394bec833 | 60 | ******************************************************************************/ |
suupen | 0:f49394bec833 | 61 | void display_clr(void) |
suupen | 0:f49394bec833 | 62 | { |
suupen | 0:f49394bec833 | 63 | uint8_t x,y; |
suupen | 0:f49394bec833 | 64 | |
suupen | 0:f49394bec833 | 65 | for(x = 0; x <= Z_displayXMax; x++){ |
suupen | 0:f49394bec833 | 66 | for(y = 0; y <= Z_displayYMax; y++){ |
suupen | 0:f49394bec833 | 67 | D_display[Z_red][x][y] = 0; |
suupen | 0:f49394bec833 | 68 | D_display[Z_green][x][y] = 0; |
suupen | 0:f49394bec833 | 69 | } |
suupen | 0:f49394bec833 | 70 | } |
suupen | 0:f49394bec833 | 71 | } |
suupen | 0:f49394bec833 | 72 | |
suupen | 0:f49394bec833 | 73 | /****************************************************************************** |
suupen | 0:f49394bec833 | 74 | Name : display_pset(redGradiation,greenGradiation,x,y) |
suupen | 0:f49394bec833 | 75 | Parameters : color x y |
suupen | 0:f49394bec833 | 76 | Returns : nothing |
suupen | 0:f49394bec833 | 77 | Description: |
suupen | 0:f49394bec833 | 78 | ******************************************************************************/ |
suupen | 0:f49394bec833 | 79 | void display_pset(_DISPLAYCOLOR c, _DISPLAYPOSITION p) |
suupen | 0:f49394bec833 | 80 | { |
suupen | 0:f49394bec833 | 81 | if(( display_positionCheck(&p) == TRUE) |
suupen | 0:f49394bec833 | 82 | && ( display_colorCheck(&c) == TRUE) |
suupen | 0:f49394bec833 | 83 | ){ |
suupen | 0:f49394bec833 | 84 | if(c.r < Z_colorNull){ |
suupen | 0:f49394bec833 | 85 | D_display[Z_red][p.x][p.y] = c.r; |
suupen | 0:f49394bec833 | 86 | } |
suupen | 0:f49394bec833 | 87 | if(c.g < Z_colorNull){ |
suupen | 0:f49394bec833 | 88 | D_display[Z_green][p.x][p.y] = c.g; |
suupen | 0:f49394bec833 | 89 | } |
suupen | 0:f49394bec833 | 90 | } |
suupen | 0:f49394bec833 | 91 | } |
suupen | 0:f49394bec833 | 92 | |
suupen | 0:f49394bec833 | 93 | /****************************************************************************** |
suupen | 0:f49394bec833 | 94 | Name : display_pset(redGradiation,greenGradiation,x,y) |
suupen | 0:f49394bec833 | 95 | Parameters : color x y |
suupen | 0:f49394bec833 | 96 | Returns : nothing |
suupen | 0:f49394bec833 | 97 | Description: |
suupen | 0:f49394bec833 | 98 | ******************************************************************************/ |
suupen | 0:f49394bec833 | 99 | void display_line(_DISPLAYCOLOR c, _DISPLAYPOSITION p0, _DISPLAYPOSITION p1) |
suupen | 0:f49394bec833 | 100 | { |
suupen | 0:f49394bec833 | 101 | _DISPLAYPOSITION d; // henka ryo |
suupen | 0:f49394bec833 | 102 | _DISPLAYPOSITION s; // hoko |
suupen | 0:f49394bec833 | 103 | |
suupen | 0:f49394bec833 | 104 | uint8_t i; |
suupen | 0:f49394bec833 | 105 | int16_t E; |
suupen | 0:f49394bec833 | 106 | |
suupen | 0:f49394bec833 | 107 | d.x = (p1.x > p0.x) ? p1.x - p0.x : p0.x - p1.x; |
suupen | 0:f49394bec833 | 108 | d.y = (p1.y > p0.y) ? p1.y - p0.y : p0.y - p1.y; |
suupen | 0:f49394bec833 | 109 | |
suupen | 0:f49394bec833 | 110 | s.x = (p1.x > p0.x) ? 1 : -1; |
suupen | 0:f49394bec833 | 111 | s.y = (p1.y > p0.y) ? 1 : -1; |
suupen | 0:f49394bec833 | 112 | |
suupen | 0:f49394bec833 | 113 | /* katamuki ga 1 yori chiisai baai */ |
suupen | 0:f49394bec833 | 114 | if ( d.x > d.y ) { |
suupen | 0:f49394bec833 | 115 | E = -d.x; |
suupen | 0:f49394bec833 | 116 | for ( i = 0 ; i <= d.x ; i++ ) { |
suupen | 0:f49394bec833 | 117 | display_pset( c, p0 ); |
suupen | 0:f49394bec833 | 118 | p0.x += s.x; |
suupen | 0:f49394bec833 | 119 | E += 2 * d.y; |
suupen | 0:f49394bec833 | 120 | if ( E >= 0 ) { |
suupen | 0:f49394bec833 | 121 | p0.y += s.y; |
suupen | 0:f49394bec833 | 122 | E -= 2 * d.x; |
suupen | 0:f49394bec833 | 123 | } |
suupen | 0:f49394bec833 | 124 | } |
suupen | 0:f49394bec833 | 125 | /* katamuki ga 1 ijo no baai */ |
suupen | 0:f49394bec833 | 126 | } else { |
suupen | 0:f49394bec833 | 127 | E = -d.y; |
suupen | 0:f49394bec833 | 128 | for ( i = 0 ; i <= d.y ; i++ ) { |
suupen | 0:f49394bec833 | 129 | display_pset( c, p0 ); |
suupen | 0:f49394bec833 | 130 | p0.y += s.y; |
suupen | 0:f49394bec833 | 131 | E += 2 * d.x; |
suupen | 0:f49394bec833 | 132 | if ( E >= 0 ) { |
suupen | 0:f49394bec833 | 133 | p0.x += s.x; |
suupen | 0:f49394bec833 | 134 | E -= 2 * d.y; |
suupen | 0:f49394bec833 | 135 | } |
suupen | 0:f49394bec833 | 136 | } |
suupen | 0:f49394bec833 | 137 | } |
suupen | 0:f49394bec833 | 138 | |
suupen | 0:f49394bec833 | 139 | } |
suupen | 0:f49394bec833 | 140 | |
suupen | 0:f49394bec833 | 141 | |
suupen | 0:f49394bec833 | 142 | /****************************************************************************** |
suupen | 0:f49394bec833 | 143 | Name : display_pset(redGradiation,greenGradiation,x,y) |
suupen | 0:f49394bec833 | 144 | Parameters : color x y l:genten kara no dot suu |
suupen | 0:f49394bec833 | 145 | Returns : nothing |
suupen | 0:f49394bec833 | 146 | Description: |
suupen | 0:f49394bec833 | 147 | ******************************************************************************/ |
suupen | 0:f49394bec833 | 148 | void display_lineLimit(_DISPLAYCOLOR c, _DISPLAYPOSITION p0, _DISPLAYPOSITION p1, uint8_t l) |
suupen | 0:f49394bec833 | 149 | { |
suupen | 0:f49394bec833 | 150 | _DISPLAYPOSITION d; // henka ryo |
suupen | 0:f49394bec833 | 151 | _DISPLAYPOSITION s; // hoko |
suupen | 0:f49394bec833 | 152 | |
suupen | 0:f49394bec833 | 153 | uint8_t i; |
suupen | 0:f49394bec833 | 154 | int16_t E; |
suupen | 0:f49394bec833 | 155 | |
suupen | 0:f49394bec833 | 156 | d.x = (p1.x > p0.x) ? p1.x - p0.x : p0.x - p1.x; |
suupen | 0:f49394bec833 | 157 | d.y = (p1.y > p0.y) ? p1.y - p0.y : p0.y - p1.y; |
suupen | 0:f49394bec833 | 158 | |
suupen | 0:f49394bec833 | 159 | s.x = (p1.x > p0.x) ? 1 : -1; |
suupen | 0:f49394bec833 | 160 | s.y = (p1.y > p0.y) ? 1 : -1; |
suupen | 0:f49394bec833 | 161 | |
suupen | 0:f49394bec833 | 162 | /* katamuki ga 1 yori tiisai baai */ |
suupen | 0:f49394bec833 | 163 | if ( d.x > d.y ) { |
suupen | 0:f49394bec833 | 164 | E = -d.x; |
suupen | 0:f49394bec833 | 165 | if(d.x > (l - 1)){d.x = (l - 1);} |
suupen | 0:f49394bec833 | 166 | for ( i = 0 ; i <= d.x ; i++ ) { |
suupen | 0:f49394bec833 | 167 | display_pset( c, p0 ); |
suupen | 0:f49394bec833 | 168 | p0.x += s.x; |
suupen | 0:f49394bec833 | 169 | E += 2 * d.y; |
suupen | 0:f49394bec833 | 170 | if ( E >= 0 ) { |
suupen | 0:f49394bec833 | 171 | p0.y += s.y; |
suupen | 0:f49394bec833 | 172 | E -= 2 * d.x; |
suupen | 0:f49394bec833 | 173 | } |
suupen | 0:f49394bec833 | 174 | } |
suupen | 0:f49394bec833 | 175 | /* katamuki ga 1 ijo no baai */ |
suupen | 0:f49394bec833 | 176 | } else { |
suupen | 0:f49394bec833 | 177 | E = -d.y; |
suupen | 0:f49394bec833 | 178 | if(d.y > (l - 1)){d.y = (l - 1);} |
suupen | 0:f49394bec833 | 179 | for ( i = 0 ; i <= d.y ; i++ ) { |
suupen | 0:f49394bec833 | 180 | display_pset( c, p0 ); |
suupen | 0:f49394bec833 | 181 | p0.y += s.y; |
suupen | 0:f49394bec833 | 182 | E += 2 * d.x; |
suupen | 0:f49394bec833 | 183 | if ( E >= 0 ) { |
suupen | 0:f49394bec833 | 184 | p0.x += s.x; |
suupen | 0:f49394bec833 | 185 | E -= 2 * d.y; |
suupen | 0:f49394bec833 | 186 | } |
suupen | 0:f49394bec833 | 187 | } |
suupen | 0:f49394bec833 | 188 | } |
suupen | 0:f49394bec833 | 189 | |
suupen | 0:f49394bec833 | 190 | } |
suupen | 0:f49394bec833 | 191 | |
suupen | 0:f49394bec833 | 192 | |
suupen | 0:f49394bec833 | 193 | |
suupen | 0:f49394bec833 | 194 | |
suupen | 0:f49394bec833 | 195 | |
suupen | 0:f49394bec833 | 196 | |
suupen | 0:f49394bec833 | 197 | |
suupen | 0:f49394bec833 | 198 | |
suupen | 0:f49394bec833 | 199 | |
suupen | 0:f49394bec833 | 200 | |
suupen | 0:f49394bec833 | 201 | |
suupen | 0:f49394bec833 | 202 | |
suupen | 0:f49394bec833 | 203 | |
suupen | 0:f49394bec833 | 204 | |
suupen | 0:f49394bec833 | 205 | |
suupen | 0:f49394bec833 | 206 | |
suupen | 0:f49394bec833 | 207 | |
suupen | 0:f49394bec833 | 208 | |
suupen | 0:f49394bec833 | 209 | |
suupen | 0:f49394bec833 | 210 | /****************************************************************************** |
suupen | 0:f49394bec833 | 211 | Name : display_test() |
suupen | 0:f49394bec833 | 212 | Parameters : none |
suupen | 0:f49394bec833 | 213 | Returns : nothing |
suupen | 0:f49394bec833 | 214 | Description: |
suupen | 0:f49394bec833 | 215 | ******************************************************************************/ |
suupen | 0:f49394bec833 | 216 | void display_test0(void) |
suupen | 0:f49394bec833 | 217 | { |
suupen | 0:f49394bec833 | 218 | _DISPLAYCOLOR c = {15, 15}; |
suupen | 0:f49394bec833 | 219 | _DISPLAYPOSITION p0 ={1, 1}; |
suupen | 0:f49394bec833 | 220 | static _DISPLAYPOSITION p1 ={0, 15}; |
suupen | 0:f49394bec833 | 221 | display_line(c, p0, p1); |
suupen | 0:f49394bec833 | 222 | |
suupen | 0:f49394bec833 | 223 | if(++p1.x > Z_displayXMax){p1.x = Z_displayXMin;} |
suupen | 0:f49394bec833 | 224 | |
suupen | 0:f49394bec833 | 225 | } |
suupen | 0:f49394bec833 | 226 | |
suupen | 0:f49394bec833 | 227 | |
suupen | 0:f49394bec833 | 228 | /****************************************************************************** |
suupen | 0:f49394bec833 | 229 | Name : display_test() |
suupen | 0:f49394bec833 | 230 | Parameters : none |
suupen | 0:f49394bec833 | 231 | Returns : nothing |
suupen | 0:f49394bec833 | 232 | Description: |
suupen | 0:f49394bec833 | 233 | ******************************************************************************/ |
suupen | 0:f49394bec833 | 234 | void display_test(void) |
suupen | 0:f49394bec833 | 235 | { |
suupen | 0:f49394bec833 | 236 | uint8_t x,y; |
suupen | 0:f49394bec833 | 237 | |
suupen | 0:f49394bec833 | 238 | |
suupen | 0:f49394bec833 | 239 | |
suupen | 0:f49394bec833 | 240 | |
suupen | 0:f49394bec833 | 241 | for(x = 0; x < 16; x++){ |
suupen | 0:f49394bec833 | 242 | for(y = 0; y < 16; y++){ |
suupen | 0:f49394bec833 | 243 | D_display[Z_red][x][y] = y; |
suupen | 0:f49394bec833 | 244 | } |
suupen | 0:f49394bec833 | 245 | } |
suupen | 0:f49394bec833 | 246 | for(y = 0; y < 16; y++){ |
suupen | 0:f49394bec833 | 247 | for(x = 0; x < 16; x++){ |
suupen | 0:f49394bec833 | 248 | D_display[Z_green][x][y] = x; |
suupen | 0:f49394bec833 | 249 | } |
suupen | 0:f49394bec833 | 250 | } |
suupen | 0:f49394bec833 | 251 | } |
suupen | 0:f49394bec833 | 252 | /****************************************************************************** |
suupen | 0:f49394bec833 | 253 | Name : display_test2() |
suupen | 0:f49394bec833 | 254 | Parameters : none |
suupen | 0:f49394bec833 | 255 | Returns : nothing |
suupen | 0:f49394bec833 | 256 | Description: |
suupen | 0:f49394bec833 | 257 | ******************************************************************************/ |
suupen | 0:f49394bec833 | 258 | void display_test2(void) |
suupen | 0:f49394bec833 | 259 | { |
suupen | 0:f49394bec833 | 260 | uint8_t x,y; |
suupen | 0:f49394bec833 | 261 | static uint8_t c = 0; |
suupen | 0:f49394bec833 | 262 | static int8_t s= 1; |
suupen | 0:f49394bec833 | 263 | |
suupen | 0:f49394bec833 | 264 | c += s; |
suupen | 0:f49394bec833 | 265 | if(c > 15){ |
suupen | 0:f49394bec833 | 266 | c = 15; |
suupen | 0:f49394bec833 | 267 | s = -1; |
suupen | 0:f49394bec833 | 268 | } |
suupen | 0:f49394bec833 | 269 | else if (c == 0){ |
suupen | 0:f49394bec833 | 270 | s = 1; |
suupen | 0:f49394bec833 | 271 | } |
suupen | 0:f49394bec833 | 272 | |
suupen | 0:f49394bec833 | 273 | for(x = 0; x < 16; x++){ |
suupen | 0:f49394bec833 | 274 | for(y = 0; y < 16; y++){ |
suupen | 0:f49394bec833 | 275 | // if(++D_display[Z_red][x][y] > 15){D_display[Z_red][x][y] = 0;} |
suupen | 0:f49394bec833 | 276 | D_display[Z_green][x][y] = c; |
suupen | 0:f49394bec833 | 277 | // if(++D_display[Z_green][x][y] > 15){D_display[Z_green][x][y] = 0;} |
suupen | 0:f49394bec833 | 278 | } |
suupen | 0:f49394bec833 | 279 | } |
suupen | 0:f49394bec833 | 280 | |
suupen | 0:f49394bec833 | 281 | } |
suupen | 0:f49394bec833 | 282 | |
suupen | 0:f49394bec833 | 283 |