標題: 關于C語言緩沖區(qū)的這段程序如何理解呢? [打印本頁]

作者: Luckyhorse009    時間: 2022-11-22 22:58
標題: 關于C語言緩沖區(qū)的這段程序如何理解呢?
  1. void main()
  2. {
  3. unsigned char i;
  4. unsigned char index=0;//移動索引
  5. unsigned char pdata bufmove1[16+sizeof(str1)+16];//移動顯示緩沖區(qū)1
  6. unsigned char pdata bufmove2[16+sizeof(str2)+16];//移動顯示緩沖區(qū)2
  7. EA=1;//開總中斷
  8. Configtime0(10);//配置T0定時10ms
  9. InitLCD1602();//初始化液晶
  10. /*緩沖區(qū)開頭一段填充為空格*/
  11. for(i=0;i<16,i++)
  12.         {
  13.          bufmove1[i]='';
  14.          bufmove2[i]='';
  15.         }
  16. /*待顯示字符串復制到緩沖區(qū)中間位置*/
  17. for(i=0;i<(sizeof(str1)-1);i++)
  18.         {
  19.          bufmove1[16+i]=str1[i];
  20.          bufmove2[16+i]=str2[i];
  21.         }
  22. /*緩沖區(qū)結尾一段也填充為空格*/
  23. for(i=(16+sizdof(str1)-1;)i<sizeof(bufomve1);i++)
  24.         {
  25.          bufmove1[i]='';
  26.          bufmove2[i]='';
  27.         }
復制代碼

作者: devcang    時間: 2022-11-23 10:09
文中的文字,已經講得夠清楚
作者: munuc_w    時間: 2022-11-23 16:18
就是開辟一塊內存區(qū)域,用于暫存需要顯示的數(shù)據(jù)或顯示數(shù)據(jù)的字模。
作者: 啤酒瓶子老大    時間: 2022-11-23 18:42
這個大概是用了做字幕滾動用的。比如1602.要先顯示空的字符,屏是沒有顯示的,然后把文字從左到右(或者從右到左)顯示過去,后面也要填充空的字符,這樣看上去就像是文字走過去了。屏其實也顯示了。只是顯示的是空字符。我們看不見而已。
作者: lomo9527    時間: 2022-11-23 18:58
我覺著程序注釋的已經很清楚了,直接調試一下,看效果就明白了
作者: xyfhdzw    時間: 2022-11-23 19:47
緩沖一般是為了避免不確定值
作者: 名字不是重點    時間: 2022-11-24 10:49
啤酒瓶子老大 發(fā)表于 2022-11-23 18:42
這個大概是用了做字幕滾動用的。比如1602.要先顯示空的字符,屏是沒有顯示的,然后把文字從左到右(或者從 ...

正解!
空白緩存區(qū),目的就是為了滾屏。
一前一后2個緩存區(qū),就是為能方便前后滾,別無他用。
如只有一前或一后,只設一個緩存區(qū),可能在滾屏完之后顯存內容也沒了。

作者: 1261867136qq    時間: 2022-11-25 09:18






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1