Dependencies:   EthernetNetIf NTPClient_NetServices mbed

Committer:
suupen
Date:
Sun Dec 11 00:24:18 2011 +0000
Revision:
0:f49394bec833

        

Who changed what in which revision?

UserRevisionLine numberNew 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