字幕迴圈顯示原理
/* 移動顯示方法 */
核心思想其實就是反過來思考,現將想要顯示的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則表示指標型別所佔空間大小
相關文章
- Oracle顯示遊標的使用及遊標for迴圈Oracle
- ScrollView 之 實現檢視的迴圈顯示View
- JavaScript的map迴圈、forEach迴圈、filter迴圈、reduce迴圈、reduceRight迴圈JavaScriptFilter
- Render函式進階: 實現資料迴圈, 或者顯示下拉框函式
- android 實現類似qq未讀訊息點選迴圈顯示Android
- 中文顯示原理研究(轉)
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- ArrayList-Linked-Set的迴圈中刪除資料的錯誤顯示
- JavaScript事件迴圈及非同步原理筆記JavaScript事件非同步筆記
- JavaScript 事件迴圈及非同步原理(完全指北)JavaScript事件非同步
- SAP Fiori image的顯示原理
- 遞迴顯示字型交換程式碼片段遞迴
- 04流程控制 for迴圈,while迴圈While
- 字幕圖示控制元件 (轉)控制元件
- 【基礎題】【for迴圈】二重迴圈
- JS優化迴圈之展開迴圈JS優化
- JavaScript for of 迴圈JavaScript
- Java迴圈Java
- javascript迴圈JavaScript
- 事件迴圈事件
- while迴圈While
- javaScript for迴圈JavaScript
- 51微控制器 16X16點陣迴圈滾動顯示漢字(基於proteus)
- Android UI 顯示原理分析小結AndroidUI
- scss中迴圈之@for迴圈佈局畫圓CSS
- matlab之在迴圈中修改迴圈變數Matlab變數
- Java入門學習-學習if & else,for迴圈,foreach迴圈,while迴圈的用法。JavaWhile
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- 基於迴圈佇列的BFS的原理及實現佇列
- Netty原始碼解析 -- 事件迴圈機制實現原理Netty原始碼事件
- FDF合約遊戲迴圈互助系統開發原理功能遊戲
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-FOR迴圈中的索引SQL索引
- 迴圈中的非同步&&迴圈中的閉包非同步
- PHP For & While 迴圈PHPWhile
- 陣列迴圈陣列
- PL/SQL 迴圈SQL
- 無迴圈 JavaScriptJavaScript
- JS事件迴圈JS事件