音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

如何用C語言實(shí)現(xiàn)查表程序!

作者:byk2005 欄目:單片機(jī)
如何用C語言實(shí)現(xiàn)查表程序!
如何用C語言實(shí)現(xiàn)查表程序!主要針對(duì)的是溫度采集,如何將采集到的電壓值通過表對(duì)應(yīng)為溫度值!


2樓: >>參與討論
rockos
聽說過排序和查找嗎

電壓和溫度的映射關(guān)系可以手工排好序, 也可以在初始化時(shí)讓程序排序.

查找的話, 二分算法就不錯(cuò).

看不懂什么意思就找一本數(shù)據(jù)結(jié)構(gòu)與算法的書好好讀一讀.

3樓: >>參與討論
computer00
建立一個(gè)數(shù)組
例如,如果采樣回來的電壓值在0到99之間,保存在名為VALUE的變量中,那么


code int table[100]={.........};  //....為對(duì)應(yīng)的溫度值

table[VALUE]就是溫度值了。





4樓: >>參與討論
jacksnon
對(duì)
找到電壓與溫度的關(guān)系,或函數(shù)關(guān)系,建立電壓表后,直接查詢就ok了噻。

5樓: >>參與討論
woodhot
可以用SWITCH語句
可以用SWITCH()加上case和break的語句組合。
但是swutch()的參數(shù)必須是整數(shù),1.2.3.4.5這樣的,所以溫度值需要做一個(gè)轉(zhuǎn)化就可以了。

6樓: >>參與討論
rockos
re
to OO & jacksnon,

這個(gè)方法要求電壓必須均勻,太苛刻了, 而且通常不滿足工程需求.

打個(gè)比方, 要求測試范圍是1~100攝氏度, 但是精度分布不同, 15~40度之間要求精確到0.1度, 其它溫度區(qū)域只要精確到1度或更低的分辨率, 這個(gè)算法就不成立了.

to woodhot,

switch/case語法是線性查找過程, 除了查找效率低下外, 維護(hù)起來也沒有列表方便.

另外, 如果電壓值不是整數(shù), 這種算法就完全不適用了.



7樓: >>參與討論
computer00
暈……ADC采樣進(jìn)來的結(jié)果還不是整數(shù)了?
一個(gè)ADC結(jié)果,就是一個(gè)溫度值。非線性又如何?如果這樣的查表都不能實(shí)現(xiàn),那其它任何方法都不能實(shí)現(xiàn)了!

因?yàn)槊恳粋(gè)ADC結(jié)果只能對(duì)應(yīng)一個(gè)溫度值,這樣一一對(duì)應(yīng)的一個(gè)表,豈有出錯(cuò)之理?

8樓: >>參與討論
rockos
re
比如說, AD的輸出范圍是整數(shù)0~1000, 分別代表0~100攝氏度, 他可能只需要對(duì)15~40度之間的數(shù)據(jù)精確表達(dá), 其它部分意思意思就行了, 表示當(dāng)前溫度已經(jīng)超過或低于XXX度. 那么程序中就只需要保存15~40度之間的詳細(xì)數(shù)據(jù), 其它部分大致表達(dá)一下就OK了.

和使用ADC輸出的電壓值做下標(biāo)相比, 大大地節(jié)省了內(nèi)存空間, 但是要使用查找算法.

如果溫度-電壓完全是線性關(guān)系, 就不必查表了, 一個(gè)表達(dá)式可能最合適:
溫度 = 電壓 * 一個(gè)常數(shù)



9樓: >>參與討論
computer00
省不省空間我不管,樓主問的是如何查表法.
在不清楚樓主詳細(xì)要求的情況下,只能給出這樣的方案,其它方法不能保證一定能夠?qū)崿F(xiàn).

你是如何得知樓主只要在某一段詳細(xì),其它地方粗略了?又如何得知他的ADC有幾位?或許只有8位也難說.


你所描述的那種方法是半查表法,或者是叫線性插值法.

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
ADUC824
我的液晶不循環(huán)為什么不能顯示???
用單片機(jī)每秒發(fā)送10字節(jié),傳輸距離6公里的方案?
PID控制程序設(shè)計(jì)中的問題!
沒有產(chǎn)品出口前,中國面對(duì)的EMC問題太少了·!
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)