00116 {
00117
00118
00119 uns8 x;
00120 uns8 data;
00121
00122
00123 #if ea_ldp6416_max_brightness > 0
00124 bright_count++;
00125
00126 if (bright_count > bright_level) {
00127
00128 set_pin(ea_ldp6416_en_port, ea_ldp6416_en_pin);
00129 }
00130
00131 if (bright_count == ea_ldp6416_max_brightness) {
00132 bright_count = 255;
00133 #endif
00134
00135 for (x = 0; x < x_refresh; x++) {
00136 #if ea_ldp6416_displays == 1
00137 data = buffer0[buffer_position];
00138 #endif
00139
00140 #if ea_ldp6416_displays == 2 && ea_ldp6416_display_orientation == HORIZONTAL
00141 if (current_buffer == 0) {
00142 data = buffer0[buffer_position];
00143 } else {
00144 data = buffer1[buffer_position];
00145 }
00146 #endif
00147 #if ea_ldp6416_displays == 3 && ea_ldp6416_display_orientation == HORIZONTAL
00148 switch (current_buffer) {
00149 case 0: data = buffer0[buffer_position]; break;
00150 case 1: data = buffer1[buffer_position]; break;
00151 case 2: data = buffer2[buffer_position]; break;
00152 }
00153 #endif
00154 #if ea_ldp6416_displays == 4 && ea_ldp6416_display_orientation == HORIZONTAL
00155 switch (current_buffer) {
00156 case 0: data = buffer0[buffer_position]; break;
00157 case 1: data = buffer1[buffer_position]; break;
00158 case 2: data = buffer2[buffer_position]; break;
00159 case 3: data = buffer3[buffer_position]; break;
00160 }
00161 #endif
00162
00163 set_pins_r1_g1();
00164
00165 if (data.0) { clear_pin(ea_ldp6416_r1_port, ea_ldp6416_r1_pin); }
00166 if (data.1) { clear_pin(ea_ldp6416_g1_port, ea_ldp6416_g1_pin); }
00167
00168 clear_pin(ea_ldp6416_s_port, ea_ldp6416_s_pin);
00169 set_pin (ea_ldp6416_s_port, ea_ldp6416_s_pin);
00170
00171 set_pins_r1_g1();
00172
00173 if (data.2) { clear_pin(ea_ldp6416_r1_port, ea_ldp6416_r1_pin); }
00174 if (data.3) { clear_pin(ea_ldp6416_g1_port, ea_ldp6416_g1_pin); }
00175
00176 clear_pin(ea_ldp6416_s_port, ea_ldp6416_s_pin);
00177 set_pin (ea_ldp6416_s_port, ea_ldp6416_s_pin);
00178
00179 set_pins_r1_g1();
00180
00181 if (data.4) { clear_pin(ea_ldp6416_r1_port, ea_ldp6416_r1_pin); }
00182 if (data.5) { clear_pin(ea_ldp6416_g1_port, ea_ldp6416_g1_pin); }
00183
00184 clear_pin(ea_ldp6416_s_port, ea_ldp6416_s_pin);
00185 set_pin (ea_ldp6416_s_port, ea_ldp6416_s_pin);
00186
00187 set_pins_r1_g1();
00188
00189 if (data.6) { clear_pin(ea_ldp6416_r1_port, ea_ldp6416_r1_pin); }
00190 if (data.7) { clear_pin(ea_ldp6416_g1_port, ea_ldp6416_g1_pin); }
00191
00192 clear_pin(ea_ldp6416_s_port, ea_ldp6416_s_pin);
00193 set_pin (ea_ldp6416_s_port, ea_ldp6416_s_pin);
00194
00195 buffer_position++;
00196
00197 #if ea_ldp6416_displays > 1 && ea_ldp6416_display_orientation == HORIZONTAL
00198 if (buffer_position == 0) {
00199 current_buffer++;
00200 }
00201 #endif
00202 }
00203
00204 #if ea_ldp6416_displays == 2 && ea_ldp6416_display_orientation == VERTICAL
00205
00206 for (x = 0; x < x_refresh; x++) {
00207 data = buffer1[buffer_position1];
00208
00209 set_pins_r1_g1();
00210
00211 if (data_upper.0) { clear_pin(ea_ldp6416_r1_port, ea_ldp6416_r1_pin); }
00212 if (data_upper.1) { clear_pin(ea_ldp6416_g1_port, ea_ldp6416_g1_pin); }
00213
00214 clear_pin(ea_ldp6416_s_port, ea_ldp6416_s_pin);
00215 set_pin (ea_ldp6416_s_port, ea_ldp6416_s_pin);
00216
00217 set_pins_r1_g1();
00218
00219 if (data_upper.2) { clear_pin(ea_ldp6416_r1_port, ea_ldp6416_r1_pin); }
00220 if (data_upper.3) { clear_pin(ea_ldp6416_g1_port, ea_ldp6416_g1_pin); }
00221
00222 clear_pin(ea_ldp6416_s_port, ea_ldp6416_s_pin);
00223 set_pin (ea_ldp6416_s_port, ea_ldp6416_s_pin);
00224
00225 set_pins_r1_g1();
00226
00227 if (data_upper.4) { clear_pin(ea_ldp6416_r1_port, ea_ldp6416_r1_pin); }
00228 if (data_upper.5) { clear_pin(ea_ldp6416_g1_port, ea_ldp6416_g1_pin); }
00229
00230 clear_pin(ea_ldp6416_s_port, ea_ldp6416_s_pin);
00231 set_pin (ea_ldp6416_s_port, ea_ldp6416_s_pin);
00232
00233 set_pins_r1_g1();
00234
00235 if (data_upper.6) { clear_pin(ea_ldp6416_r1_port, ea_ldp6416_r1_pin); }
00236 if (data_upper.7) { clear_pin(ea_ldp6416_g1_port, ea_ldp6416_g1_pin); }
00237
00238 clear_pin(ea_ldp6416_s_port, ea_ldp6416_s_pin);
00239 set_pin (ea_ldp6416_s_port, ea_ldp6416_s_pin);
00240
00241 buffer_position1++;
00242 }
00243
00244 #endif
00245
00246
00247 set_pin(ea_ldp6416_en_port, ea_ldp6416_en_pin);
00248
00249 clear_pin(ea_ldp6416_a_port, ea_ldp6416_a_pin);
00250 clear_pin(ea_ldp6416_b_port, ea_ldp6416_b_pin);
00251 clear_pin(ea_ldp6416_c_port, ea_ldp6416_c_pin);
00252 clear_pin(ea_ldp6416_d_port, ea_ldp6416_d_pin);
00253
00254 if (current_row.0) { set_pin(ea_ldp6416_a_port, ea_ldp6416_a_pin); }
00255 if (current_row.1) { set_pin(ea_ldp6416_b_port, ea_ldp6416_b_pin); }
00256 if (current_row.2) { set_pin(ea_ldp6416_c_port, ea_ldp6416_c_pin); }
00257 if (current_row.3) { set_pin(ea_ldp6416_d_port, ea_ldp6416_d_pin); }
00258
00259
00260 set_pin(ea_ldp6416_l_port, ea_ldp6416_l_pin);
00261 clear_pin(ea_ldp6416_l_port, ea_ldp6416_l_pin);
00262
00263
00264 clear_pin(ea_ldp6416_en_port, ea_ldp6416_en_pin);
00265
00266 current_row++;
00267 if (current_row == y_refresh) {
00268 current_buffer = 0;
00269 buffer_position = 0;
00270 current_row = 0;
00271 }
00272
00273 #if ea_ldp6416_max_brightness > 0
00274
00275 }
00276 #endif
00277
00278 }