字幕迴圈顯示原理
/* 移動顯示方法 */
核心思想其實就是反過來思考,現將想要顯示的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則表示指標型別所佔空間大小
相關文章
- for迴圈—不同div顯示不同樣式
- vue迴圈顯示base64圖片Vue
- Oracle顯示遊標的使用及遊標for迴圈Oracle
- Render函式進階: 實現資料迴圈, 或者顯示下拉框函式
- for 迴圈與 while 迴圈While
- while迴圈 case迴圈While
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- SAP Fiori image的顯示原理
- JavaScript 事件迴圈及非同步原理(完全指北)JavaScript事件非同步
- JavaScript事件迴圈及非同步原理筆記JavaScript事件非同步筆記
- 無限for迴圈(死迴圈)
- while迴圈以及do while迴圈While
- Android UI 顯示原理分析小結AndroidUI
- if for迴圈
- For 迴圈
- if迴圈
- 迴圈
- for迴圈
- 04流程控制 for迴圈,while迴圈While
- 遞迴顯示字型交換程式碼片段遞迴
- Netty原始碼解析 -- 事件迴圈機制實現原理Netty原始碼事件
- 51微控制器 16X16點陣迴圈滾動顯示漢字(基於proteus)
- 聯想y7000p+ubuntu16.04安裝顯示卡驅動後迴圈登入問題Ubuntu
- for迴圈、break和continue、二重迴圈
- 【基礎題】【for迴圈】二重迴圈
- 11C++迴圈結構-for迴圈(1)C++
- pythonfor迴圈Python
- javascript迴圈JavaScript
- Kotlin 迴圈Kotlin
- JavaScript for of 迴圈JavaScript
- 迴圈引用
- while迴圈While
- javaScript for迴圈JavaScript
- 迴圈群
- 事件迴圈事件
- Java迴圈Java
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- scss中迴圈之@for迴圈佈局畫圓CSS