drv_ea_ldp6432.c File Reference

Draw drivers for Embedded Adventures LDP-6432 LED panel and similar. More...

Include dependency graph for drv_ea_ldp6432.c:

Defines

#define MAX_BRIGHTNESS   3
#define set_pins_r1_g1_r2_g2()

Functions

void drv_clear_screen ()
uns8 drv_get_pixel (uns8 x, uns8 y)
void drv_init ()
void drv_paint ()
void drv_print_buffer ()
void drv_refresh ()
void drv_set_display_brightness (uns8 brightness)
void drv_setup_io ()

Variables

uns8 bright_count = 0
uns8 bright_level = 3
char buffer0 [256]
char buffer1 [256]
uns8 buffer_position0 = 0
uns8 current_row = 0

Detailed Description


Define Documentation

#define MAX_BRIGHTNESS   3
 
#define set_pins_r1_g1_r2_g2 (  ) 
Value:
set_pin(ea_ldp6432_r1_port, ea_ldp6432_r1_pin); \
    set_pin(ea_ldp6432_r2_port, ea_ldp6432_r2_pin); \
    set_pin(ea_ldp6432_g1_port, ea_ldp6432_g1_pin); \
    set_pin(ea_ldp6432_g2_port, ea_ldp6432_g2_pin)

Function Documentation

void drv_clear_screen (  ) 

00331                         {
00332     //ht1632_clear_screen();
00333 }

uns8 drv_get_pixel ( uns8  x,
uns8  y 
)

00327                                    {
00328     //ht1632_get_pixel(x, y);
00329 }

void drv_init (  ) 

00339                 {
00340     ea_ldp6432_init();
00341 }   

Here is the call graph for this function:

void drv_paint (  ) 

00074                  {
00075     uns8 count;
00076     
00077     count = 0;
00078     
00079     do {
00080         buffer0[count] = draw_buffer0[count];
00081         buffer1[count] = draw_buffer1[count];
00082         #if ea_ldp6432_displays == 2
00083             buffer2[count] = draw_buffer2[count];
00084             buffer3[count] = draw_buffer3[count];
00085         #endif
00086         count++;
00087     } while (count !=0);    
00088 }

void drv_print_buffer (  ) 

00312                         {
00313 uns8 count;
00314 
00315     count = 0;
00316     do {
00317         serial_print_int(buffer0[count]);
00318         serial_print_spc();
00319         count++;
00320     } while (count != 0);   
00321     serial_print_nl();
00322 
00323 }

Here is the call graph for this function:

void drv_refresh (  ) 

00098                    {
00099 
00100 
00101 uns8 x;
00102 uns8 data_upper, data_lower;
00103 
00104 
00105     bright_count++;
00106     
00107     if (bright_count > bright_level) {
00108         // Turn off display
00109         set_pin(ea_ldp6432_en_port, ea_ldp6432_en_pin);
00110     }
00111     
00112     if (bright_count == MAX_BRIGHTNESS) {
00113         bright_count = 255;
00114 
00115     
00116             
00117         for (x = 0; x < 16; x++) {
00118             data_upper = buffer0[buffer_position0];
00119             data_lower = buffer1[buffer_position0];
00120             
00121             set_pins_r1_g1_r2_g2();
00122             
00123             if (data_upper.0) { 
00124                 clear_pin(ea_ldp6432_r1_port, ea_ldp6432_r1_pin);
00125             }
00126             if (data_upper.1) {
00127                 clear_pin(ea_ldp6432_g1_port, ea_ldp6432_g1_pin);
00128             }
00129             if (data_lower.0) {
00130                 clear_pin(ea_ldp6432_r2_port, ea_ldp6432_r2_pin);
00131             }
00132             if (data_lower.1) {
00133                 clear_pin(ea_ldp6432_g2_port, ea_ldp6432_g2_pin);
00134             }
00135                 
00136             clear_pin(ea_ldp6432_s_port, ea_ldp6432_s_pin);
00137             set_pin  (ea_ldp6432_s_port, ea_ldp6432_s_pin);
00138             
00139             set_pins_r1_g1_r2_g2();
00140             
00141             if (data_upper.2) { 
00142                 clear_pin(ea_ldp6432_r1_port, ea_ldp6432_r1_pin);
00143             }
00144             if (data_upper.3) {
00145                 clear_pin(ea_ldp6432_g1_port, ea_ldp6432_g1_pin);
00146             }
00147             if (data_lower.2) {
00148                 clear_pin(ea_ldp6432_r2_port, ea_ldp6432_r2_pin);
00149             }
00150             if (data_lower.3) {
00151                 clear_pin(ea_ldp6432_g2_port, ea_ldp6432_g2_pin);
00152             }
00153                 
00154             clear_pin(ea_ldp6432_s_port, ea_ldp6432_s_pin);
00155             set_pin  (ea_ldp6432_s_port, ea_ldp6432_s_pin);
00156             
00157             set_pins_r1_g1_r2_g2();
00158             
00159             if (data_upper.4) { 
00160                 clear_pin(ea_ldp6432_r1_port, ea_ldp6432_r1_pin);
00161             }
00162             if (data_upper.5) {
00163                 clear_pin(ea_ldp6432_g1_port, ea_ldp6432_g1_pin);
00164             }
00165             if (data_lower.4) {
00166                 clear_pin(ea_ldp6432_r2_port, ea_ldp6432_r2_pin);
00167             }
00168             if (data_lower.5) {
00169                 clear_pin(ea_ldp6432_g2_port, ea_ldp6432_g2_pin);
00170             }
00171                 
00172             clear_pin(ea_ldp6432_s_port, ea_ldp6432_s_pin);
00173             set_pin  (ea_ldp6432_s_port, ea_ldp6432_s_pin);
00174             
00175             set_pins_r1_g1_r2_g2();
00176             
00177             
00178             if (data_upper.6) { 
00179                 clear_pin(ea_ldp6432_r1_port, ea_ldp6432_r1_pin);
00180             }
00181             if (data_upper.7) {
00182                 clear_pin(ea_ldp6432_g1_port, ea_ldp6432_g1_pin);
00183             }
00184             if (data_lower.6) {
00185                 clear_pin(ea_ldp6432_r2_port, ea_ldp6432_r2_pin);
00186             }
00187             if (data_lower.7) {
00188                 clear_pin(ea_ldp6432_g2_port, ea_ldp6432_g2_pin);
00189             }
00190                 
00191             clear_pin(ea_ldp6432_s_port, ea_ldp6432_s_pin);
00192             set_pin  (ea_ldp6432_s_port, ea_ldp6432_s_pin);
00193             
00194             buffer_position0++;
00195         }   
00196         
00197             #if ea_ldp6432_displays == 2
00198                 for (x = 0; x < 16; x++) {
00199                     data_upper = buffer2[buffer_position1];
00200                     data_lower = buffer3[buffer_position1];
00201                     
00202                     set_pins_r1_g1_r2_g2();
00203                     
00204                     if (data_upper.0) { 
00205                         clear_pin(ea_ldp6432_r1_port, ea_ldp6432_r1_pin);
00206                     }
00207                     if (data_upper.1) {
00208                         clear_pin(ea_ldp6432_g1_port, ea_ldp6432_g1_pin);
00209                     }
00210                     if (data_lower.0) {
00211                         clear_pin(ea_ldp6432_r2_port, ea_ldp6432_r2_pin);
00212                     }
00213                     if (data_lower.1) {
00214                         clear_pin(ea_ldp6432_g2_port, ea_ldp6432_g2_pin);
00215                     }
00216                         
00217                     clear_pin(ea_ldp6432_s_port, ea_ldp6432_s_pin);
00218                     set_pin  (ea_ldp6432_s_port, ea_ldp6432_s_pin);
00219                     
00220                     set_pins_r1_g1_r2_g2();
00221                     
00222                     if (data_upper.2) { 
00223                         clear_pin(ea_ldp6432_r1_port, ea_ldp6432_r1_pin);
00224                     }
00225                     if (data_upper.3) {
00226                         clear_pin(ea_ldp6432_g1_port, ea_ldp6432_g1_pin);
00227                     }
00228                     if (data_lower.2) {
00229                         clear_pin(ea_ldp6432_r2_port, ea_ldp6432_r2_pin);
00230                     }
00231                     if (data_lower.3) {
00232                         clear_pin(ea_ldp6432_g2_port, ea_ldp6432_g2_pin);
00233                     }
00234                         
00235                     clear_pin(ea_ldp6432_s_port, ea_ldp6432_s_pin);
00236                     set_pin  (ea_ldp6432_s_port, ea_ldp6432_s_pin);
00237                     
00238                     set_pins_r1_g1_r2_g2();
00239                     
00240                     if (data_upper.4) { 
00241                         clear_pin(ea_ldp6432_r1_port, ea_ldp6432_r1_pin);
00242                     }
00243                     if (data_upper.5) {
00244                         clear_pin(ea_ldp6432_g1_port, ea_ldp6432_g1_pin);
00245                     }
00246                     if (data_lower.4) {
00247                         clear_pin(ea_ldp6432_r2_port, ea_ldp6432_r2_pin);
00248                     }
00249                     if (data_lower.5) {
00250                         clear_pin(ea_ldp6432_g2_port, ea_ldp6432_g2_pin);
00251                     }
00252                         
00253                     clear_pin(ea_ldp6432_s_port, ea_ldp6432_s_pin);
00254                     set_pin  (ea_ldp6432_s_port, ea_ldp6432_s_pin);
00255                     
00256                     set_pins_r1_g1_r2_g2();
00257                     
00258                     
00259                     if (data_upper.6) { 
00260                         clear_pin(ea_ldp6432_r1_port, ea_ldp6432_r1_pin);
00261                     }
00262                     if (data_upper.7) {
00263                         clear_pin(ea_ldp6432_g1_port, ea_ldp6432_g1_pin);
00264                     }
00265                     if (data_lower.6) {
00266                         clear_pin(ea_ldp6432_r2_port, ea_ldp6432_r2_pin);
00267                     }
00268                     if (data_lower.7) {
00269                         clear_pin(ea_ldp6432_g2_port, ea_ldp6432_g2_pin);
00270                     }
00271                         
00272                     clear_pin(ea_ldp6432_s_port, ea_ldp6432_s_pin);
00273                     set_pin  (ea_ldp6432_s_port, ea_ldp6432_s_pin);
00274                     
00275                     buffer_position1++;
00276                 } // x loop 
00277                 
00278             #endif
00279                     
00280     
00281         set_pin(ea_ldp6432_en_port, ea_ldp6432_en_pin); // turn enable off
00282         
00283         clear_pin(ea_ldp6432_a_port, ea_ldp6432_a_pin);
00284         clear_pin(ea_ldp6432_b_port, ea_ldp6432_b_pin);
00285         clear_pin(ea_ldp6432_c_port, ea_ldp6432_c_pin);
00286         clear_pin(ea_ldp6432_d_port, ea_ldp6432_d_pin);
00287         if (current_row.0) { set_pin(ea_ldp6432_a_port, ea_ldp6432_a_pin); }        
00288         if (current_row.1) { set_pin(ea_ldp6432_b_port, ea_ldp6432_b_pin); }    
00289         if (current_row.2) { set_pin(ea_ldp6432_c_port, ea_ldp6432_c_pin); }        
00290         if (current_row.3) { set_pin(ea_ldp6432_d_port, ea_ldp6432_d_pin); } 
00291     
00292         // latch data   
00293         set_pin(ea_ldp6432_l_port, ea_ldp6432_l_pin);
00294         clear_pin(ea_ldp6432_l_port, ea_ldp6432_l_pin);
00295         
00296         // enable display of line
00297         clear_pin(ea_ldp6432_en_port, ea_ldp6432_en_pin);
00298         
00299         current_row++;
00300             
00301         if (current_row == 16) {
00302             buffer_position0 = 0;
00303             #if ea_ldp6432_displays == 2
00304                 buffer_position1 = 0;
00305             #endif          
00306             current_row = 0;
00307         }   
00308 
00309     }
00310 }

void drv_set_display_brightness ( uns8  brightness  ) 

00090                                                  {
00091     if (brightness < MAX_BRIGHTNESS) {
00092         bright_level = brightness;
00093     } else {
00094         bright_level = MAX_BRIGHTNESS;
00095     }
00096 }   

void drv_setup_io (  ) 

00335                     {
00336     ea_ldp6432_setup_io();
00337 }

Here is the call graph for this function:


Variable Documentation

uns8 bright_count = 0
uns8 bright_level = 3
char buffer0[256]
char buffer1[256]
uns8 buffer_position0 = 0
uns8 current_row = 0

Generated on Fri Aug 19 09:05:02 2011 for Pic Pack Library by  doxygen 1.6.1