1. 程式人生 > 其它 >字幕迴圈顯示原理

字幕迴圈顯示原理

技術標籤:字串

/* 移動顯示方法 */
核心思想其實就是反過來思考,現將想要顯示的buffer填充好,然後移動螢幕,就好像我們小的時候玩的那種比色卡,中間有一段鏤空,螢幕就代表了這個角色。

/* 本例子以Lcd1602舉例,單實現方法通用 如有更好的辦法,歡迎交流討論 */
//首先建立一個數組,陣列的兩邊設定緩衝區,緩衝區大小即為螢幕寬度
char movebuffer[16 + strlen(str) + 16];
char index = 0,i = 0;
char str[] = "Welcome"; 
//對陣列進行處理,緩衝區清零,並將字串新增進去
for(i = 0; i <
16; i++) { movebuffer[i] = 0; } for(i = 0; i < strlen(str); i++) { movebuffer[i+16] = *str+i; } for(i = 16 + strlen(str); i < 32 + str; i++) { movebuffer[i] = 0; } //移動索引遞增,實現左移 //字元放在中間,逐漸向右移動螢幕,字就逐漸顯示出來 for(index = 0; index < 16 + strlen(str); index++) { LcdShowStr(0,0,movebuffer+index,16); //起始位置達到字串尾部後即返回從頭開始
if(index == 16 + strlen(str)) index = 0; }

這裡全部使用了不計算結尾‘\0’的strlen ,如果要使用sizeof記得減一
使用strlen 也可以獲取到由指標所指向的的字串,而sizeof則表示指標型別所佔空間大小