我這個程序是驅動OLED顯示的,我覺得程序好復雜,,應該去簡化一下,比喻:display_0_l[0]; 我是用到數組,因為每個CASE 裡 面的程序就隻有BANK ,LINE 和display_0_l[0]; 這幾個變量,有沒有方法把數組這個數做成“地址變量“在循環中來調用。不要一個一個的寫,這樣程序量會好大。。請高手指點
void lcd_display(unsigned char lcd_char){ unsigned char i,j,area_cnt,bank_buff,line_buff;
bank_buff=bank;line_buff=line; switch(lcd_char){ case 0x00: area_cnt=display_0_l[0]; //0 lcd_set(); lcd_start_data(); for(j=1;j<area_cnt;j++){ send_data=display_0_l[j]; send_lcd_data(); } lcd_stop();
bank--;line=line_buff; lcd_set(); lcd_start_data(); for(j=1;j<area_cnt;j++){ send_data=display_0_h[j]; send_lcd_data(); } lcd_stop(); break; case 0x01: //1 area_cnt=display_1_l[0]; lcd_set(); lcd_start_data(); for(j=1;j<area_cnt;j++){ send_data=display_1_l[j]; send_lcd_data(); } lcd_stop(); bank--;line=line_buff; lcd_set(); lcd_start_data(); for(j=1;j<area_cnt;j++){ send_data=display_1_h[j]; send_lcd_data(); } lcd_stop(); break;
... .. .. 下面還有。。。
|