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