雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

嵌入式C語言查表法在項(xiàng)目中的應(yīng)用

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊:

嵌入式C實(shí)戰(zhàn)項(xiàng)目開發(fā)技巧:對(duì)一個(gè)有規(guī)律的數(shù)組表進(jìn)行位移操作的方法

就像下面的這個(gè)表

之前寫過上面這個(gè)標(biāo)題的一篇文章,講的是以位移的方式去遍歷表中的數(shù)據(jù),效率非常高,但是,如果要實(shí)現(xiàn)一個(gè)亂序的流水燈或者跑馬燈的話,思考一個(gè)這樣的算法是不可取的,很費(fèi)時(shí)間,也很費(fèi)腦力,于是,今天就說一說查表法,如果在程序中運(yùn)用查表法,不論多么復(fù)雜的程序,只要符合一張表,那都可以實(shí)現(xiàn),非常簡(jiǎn)單,體力活而已,接下來看看下面這個(gè)程序,對(duì)上面這個(gè)進(jìn)行操作吧。

#include <stdio.h>
#include <windows.h>
//這里的行可以自由寫,這樣就不受限制,想做出什么樣的效果都可以。
int array[][10] = {
 0x03,0x00,0x00,0x00,0x00,//第一列
 0x00,0x02,0x00,0x00,0x00,
 0x0C,0x00,0x00,0x00,0x00,//第二列
 0x00,0x04,0x00,0x00,0x00,
 0x10,0x00,0x00,0x00,0x00,//第三列
 0x00,0x08,0x00,0x00,0x00,
 0x60,0x00,0x00,0x00,0x00,//第四列
 0x00,0x10,0x00,0x00,0x00,
 0x80,0x01,0x00,0x00,0x00,//第五列
 0x00,0x20,0x00,0x00,0x00,
 0xAA,0x55,0x00,0x00,0xC0,//end
 0x00,0x00,0x00,0x00,0x00,
};
void to_Q112_cmd_designator_LED(int *array)
{
 int i;
 for(i = 0; i < 10; i++)
 {
 printf(" %3d ", *(array+i)); 
 }
 printf("\n");
}
void delay_500ms(void)
{
 Sleep(500);
}
int main(void)
{
 int i,j;
 int tick;
 int count = 0;
 while(array[count][0] != 0xAA || array[count][1] != 0x55)//如果當(dāng)數(shù)組第count行第0列等于0xAA,或者第count行第1列等于0x55時(shí),那么就退出,否則就循環(huán)執(zhí)行遍歷數(shù)據(jù) 
 { 
 to_Q112_cmd_designator_LED((int *)(&array[0][0]+count*10) );//以首元素每次向后偏移10個(gè)字節(jié)
 delay_500ms();
 count++;
 }
 return 0;
}

運(yùn)行結(jié)果:

   3    0    0    0    0    0    2    0    0    0
  12    0    0    0    0    0    4    0    0    0
  16    0    0    0    0    0    8    0    0    0
  96    0    0    0    0    0   16    0    0    0
 128    1    0    0    0    0   32    0    0    0

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)我們的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

上一篇:基于c++ ege圖形庫實(shí)現(xiàn)五子棋游戲

欄    目:C語言

下一篇:C++操作文件進(jìn)行讀取、刪除、修改指定行

本文標(biāo)題:嵌入式C語言查表法在項(xiàng)目中的應(yīng)用

本文地址:http://www.jygsgssxh.com/a1/Cyuyan/590.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有