程序分析
發(fā)布時(shí)間:2012/6/12 20:35:27 訪問次數(shù):945
程序進(jìn)入無限DSP56F807PY80循環(huán)以后,每10ms改變一次Penod的值,并且當(dāng)Period等于1023時(shí)將Updown變量由0變?yōu)?,而當(dāng)Period等于O時(shí),將UpDown由1變?yōu)?,這樣就形成了上升和下降的過程。隨后調(diào)用SetPeriod函數(shù)來設(shè)置CCPRIL及附加的2位。
按我們的想像,當(dāng)占空比從1%變化到990/6時(shí),燈將會(huì)如熒火蟲一樣一閃一閃地發(fā)光。結(jié)果事實(shí)令我們大失所望,燈的明暗變化那是有了,可是變化的樣子根本不像熒火蟲的發(fā)光。問題何在呢?原來這段程序非常線性地控制了流經(jīng)LED的平均龜流,但電流的線性并不意味著LED發(fā)光強(qiáng)度的線性,更不意味著與熒火蟲發(fā)光的過程一致。如何解決這一問題呢?
理想的方法是:抓個(gè)熒火蟲,關(guān)在黑盒子里,放個(gè)照度計(jì),每隔一段時(shí)間采樣一次,如實(shí)記錄下光亮強(qiáng)度與時(shí)間芙系的曲線;然后研究LED的亮度,同樣將發(fā)光管置于黑盒子中,通過調(diào)節(jié)流過發(fā)光管的電流,擬合出一條與熒火蟲發(fā)光過程一致的曲線出來。
這似乎太離譜了吧,我只想嘗嘗蘋果的滋味,你卻讓我從種蘋果樹開始工作?當(dāng)然,這個(gè)練習(xí)中我們不會(huì)這么做。但是這里提出這個(gè)問題絕非玩笑,事實(shí)上很多單片機(jī)初學(xué)者會(huì)把完成一個(gè)項(xiàng)目當(dāng)成是“編寫程序”,進(jìn)行預(yù)算時(shí)考慮很不周到。殊不知編程僅僅只是項(xiàng)目很小的一部分工作,大量的工作是在程序之外做的。由此造成項(xiàng)目的誤工、誤期乃至各種糾紛。也許能不能考慮到這些程序外的東西可以作為老鳥和菜烏的區(qū)分吧9
閑言少敘,回到任務(wù)中來。為避免浩大的工程,我們就借助于自己的眼睛作為儀器,來大致地確定一下LED的亮度等級(jí)。因?yàn)椴幌牍?jié)外生枝再來做個(gè)數(shù)碼管用作顯示,所以這里用了最原始的方法來做這個(gè)工作。程序2是一段調(diào)整數(shù)碼管亮度的程序,變量LedBright的值決定了LED的亮度。不斷改寫LedBright,然后重新編譯、鏈接,再將得到的代碼寫入芯片來觀察LED的亮度。為簡單起見,這里將LED的亮度分成20等分,通過人眼大致判斷的方法來確定對(duì)應(yīng)的LedBrigh{f直的大小。和理想的方法相比,這是一個(gè)非常屎始和粗略的方法,但就是這樣,要分出這20個(gè)級(jí)別來,要花的時(shí)間也不少,建議讀者都能夠動(dòng)手做一做以體會(huì)其中的艱辛。從作者的經(jīng)驗(yàn)來看,不同型號(hào)的LED對(duì)于參數(shù)的影響很大,如果使用高亮度LED,R2應(yīng)取1k(/,而普通亮度的LED,F(xiàn)l2可以取3300。另外,各人眼光也不盡相同,作者獲得的數(shù)據(jù)未必與你得到的一致,因此自己做一做是很有必要的。
通過實(shí)驗(yàn),確定了20個(gè)數(shù)值對(duì)應(yīng)20級(jí)亮度,那么程序3就是用來實(shí)現(xiàn)熒火蟲燈了。這段程序就不再多作解釋了,這里使用了查表的方法來確定亮度的變化。將程序?qū)懭胄酒\(yùn)行,馬上就能看到LED的變化了,瞧,一閃一閃,那不正是夏夜里的熒火蟲嗎?
按我們的想像,當(dāng)占空比從1%變化到990/6時(shí),燈將會(huì)如熒火蟲一樣一閃一閃地發(fā)光。結(jié)果事實(shí)令我們大失所望,燈的明暗變化那是有了,可是變化的樣子根本不像熒火蟲的發(fā)光。問題何在呢?原來這段程序非常線性地控制了流經(jīng)LED的平均龜流,但電流的線性并不意味著LED發(fā)光強(qiáng)度的線性,更不意味著與熒火蟲發(fā)光的過程一致。如何解決這一問題呢?
理想的方法是:抓個(gè)熒火蟲,關(guān)在黑盒子里,放個(gè)照度計(jì),每隔一段時(shí)間采樣一次,如實(shí)記錄下光亮強(qiáng)度與時(shí)間芙系的曲線;然后研究LED的亮度,同樣將發(fā)光管置于黑盒子中,通過調(diào)節(jié)流過發(fā)光管的電流,擬合出一條與熒火蟲發(fā)光過程一致的曲線出來。
這似乎太離譜了吧,我只想嘗嘗蘋果的滋味,你卻讓我從種蘋果樹開始工作?當(dāng)然,這個(gè)練習(xí)中我們不會(huì)這么做。但是這里提出這個(gè)問題絕非玩笑,事實(shí)上很多單片機(jī)初學(xué)者會(huì)把完成一個(gè)項(xiàng)目當(dāng)成是“編寫程序”,進(jìn)行預(yù)算時(shí)考慮很不周到。殊不知編程僅僅只是項(xiàng)目很小的一部分工作,大量的工作是在程序之外做的。由此造成項(xiàng)目的誤工、誤期乃至各種糾紛。也許能不能考慮到這些程序外的東西可以作為老鳥和菜烏的區(qū)分吧9
閑言少敘,回到任務(wù)中來。為避免浩大的工程,我們就借助于自己的眼睛作為儀器,來大致地確定一下LED的亮度等級(jí)。因?yàn)椴幌牍?jié)外生枝再來做個(gè)數(shù)碼管用作顯示,所以這里用了最原始的方法來做這個(gè)工作。程序2是一段調(diào)整數(shù)碼管亮度的程序,變量LedBright的值決定了LED的亮度。不斷改寫LedBright,然后重新編譯、鏈接,再將得到的代碼寫入芯片來觀察LED的亮度。為簡單起見,這里將LED的亮度分成20等分,通過人眼大致判斷的方法來確定對(duì)應(yīng)的LedBrigh{f直的大小。和理想的方法相比,這是一個(gè)非常屎始和粗略的方法,但就是這樣,要分出這20個(gè)級(jí)別來,要花的時(shí)間也不少,建議讀者都能夠動(dòng)手做一做以體會(huì)其中的艱辛。從作者的經(jīng)驗(yàn)來看,不同型號(hào)的LED對(duì)于參數(shù)的影響很大,如果使用高亮度LED,R2應(yīng)取1k(/,而普通亮度的LED,F(xiàn)l2可以取3300。另外,各人眼光也不盡相同,作者獲得的數(shù)據(jù)未必與你得到的一致,因此自己做一做是很有必要的。
通過實(shí)驗(yàn),確定了20個(gè)數(shù)值對(duì)應(yīng)20級(jí)亮度,那么程序3就是用來實(shí)現(xiàn)熒火蟲燈了。這段程序就不再多作解釋了,這里使用了查表的方法來確定亮度的變化。將程序?qū)懭胄酒\(yùn)行,馬上就能看到LED的變化了,瞧,一閃一閃,那不正是夏夜里的熒火蟲嗎?
程序進(jìn)入無限DSP56F807PY80循環(huán)以后,每10ms改變一次Penod的值,并且當(dāng)Period等于1023時(shí)將Updown變量由0變?yōu)?,而當(dāng)Period等于O時(shí),將UpDown由1變?yōu)?,這樣就形成了上升和下降的過程。隨后調(diào)用SetPeriod函數(shù)來設(shè)置CCPRIL及附加的2位。
按我們的想像,當(dāng)占空比從1%變化到990/6時(shí),燈將會(huì)如熒火蟲一樣一閃一閃地發(fā)光。結(jié)果事實(shí)令我們大失所望,燈的明暗變化那是有了,可是變化的樣子根本不像熒火蟲的發(fā)光。問題何在呢?原來這段程序非常線性地控制了流經(jīng)LED的平均龜流,但電流的線性并不意味著LED發(fā)光強(qiáng)度的線性,更不意味著與熒火蟲發(fā)光的過程一致。如何解決這一問題呢?
理想的方法是:抓個(gè)熒火蟲,關(guān)在黑盒子里,放個(gè)照度計(jì),每隔一段時(shí)間采樣一次,如實(shí)記錄下光亮強(qiáng)度與時(shí)間芙系的曲線;然后研究LED的亮度,同樣將發(fā)光管置于黑盒子中,通過調(diào)節(jié)流過發(fā)光管的電流,擬合出一條與熒火蟲發(fā)光過程一致的曲線出來。
這似乎太離譜了吧,我只想嘗嘗蘋果的滋味,你卻讓我從種蘋果樹開始工作?當(dāng)然,這個(gè)練習(xí)中我們不會(huì)這么做。但是這里提出這個(gè)問題絕非玩笑,事實(shí)上很多單片機(jī)初學(xué)者會(huì)把完成一個(gè)項(xiàng)目當(dāng)成是“編寫程序”,進(jìn)行預(yù)算時(shí)考慮很不周到。殊不知編程僅僅只是項(xiàng)目很小的一部分工作,大量的工作是在程序之外做的。由此造成項(xiàng)目的誤工、誤期乃至各種糾紛。也許能不能考慮到這些程序外的東西可以作為老鳥和菜烏的區(qū)分吧9
閑言少敘,回到任務(wù)中來。為避免浩大的工程,我們就借助于自己的眼睛作為儀器,來大致地確定一下LED的亮度等級(jí)。因?yàn)椴幌牍?jié)外生枝再來做個(gè)數(shù)碼管用作顯示,所以這里用了最原始的方法來做這個(gè)工作。程序2是一段調(diào)整數(shù)碼管亮度的程序,變量LedBright的值決定了LED的亮度。不斷改寫LedBright,然后重新編譯、鏈接,再將得到的代碼寫入芯片來觀察LED的亮度。為簡單起見,這里將LED的亮度分成20等分,通過人眼大致判斷的方法來確定對(duì)應(yīng)的LedBrigh{f直的大小。和理想的方法相比,這是一個(gè)非常屎始和粗略的方法,但就是這樣,要分出這20個(gè)級(jí)別來,要花的時(shí)間也不少,建議讀者都能夠動(dòng)手做一做以體會(huì)其中的艱辛。從作者的經(jīng)驗(yàn)來看,不同型號(hào)的LED對(duì)于參數(shù)的影響很大,如果使用高亮度LED,R2應(yīng)取1k(/,而普通亮度的LED,F(xiàn)l2可以取3300。另外,各人眼光也不盡相同,作者獲得的數(shù)據(jù)未必與你得到的一致,因此自己做一做是很有必要的。
通過實(shí)驗(yàn),確定了20個(gè)數(shù)值對(duì)應(yīng)20級(jí)亮度,那么程序3就是用來實(shí)現(xiàn)熒火蟲燈了。這段程序就不再多作解釋了,這里使用了查表的方法來確定亮度的變化。將程序?qū)懭胄酒\(yùn)行,馬上就能看到LED的變化了,瞧,一閃一閃,那不正是夏夜里的熒火蟲嗎?
按我們的想像,當(dāng)占空比從1%變化到990/6時(shí),燈將會(huì)如熒火蟲一樣一閃一閃地發(fā)光。結(jié)果事實(shí)令我們大失所望,燈的明暗變化那是有了,可是變化的樣子根本不像熒火蟲的發(fā)光。問題何在呢?原來這段程序非常線性地控制了流經(jīng)LED的平均龜流,但電流的線性并不意味著LED發(fā)光強(qiáng)度的線性,更不意味著與熒火蟲發(fā)光的過程一致。如何解決這一問題呢?
理想的方法是:抓個(gè)熒火蟲,關(guān)在黑盒子里,放個(gè)照度計(jì),每隔一段時(shí)間采樣一次,如實(shí)記錄下光亮強(qiáng)度與時(shí)間芙系的曲線;然后研究LED的亮度,同樣將發(fā)光管置于黑盒子中,通過調(diào)節(jié)流過發(fā)光管的電流,擬合出一條與熒火蟲發(fā)光過程一致的曲線出來。
這似乎太離譜了吧,我只想嘗嘗蘋果的滋味,你卻讓我從種蘋果樹開始工作?當(dāng)然,這個(gè)練習(xí)中我們不會(huì)這么做。但是這里提出這個(gè)問題絕非玩笑,事實(shí)上很多單片機(jī)初學(xué)者會(huì)把完成一個(gè)項(xiàng)目當(dāng)成是“編寫程序”,進(jìn)行預(yù)算時(shí)考慮很不周到。殊不知編程僅僅只是項(xiàng)目很小的一部分工作,大量的工作是在程序之外做的。由此造成項(xiàng)目的誤工、誤期乃至各種糾紛。也許能不能考慮到這些程序外的東西可以作為老鳥和菜烏的區(qū)分吧9
閑言少敘,回到任務(wù)中來。為避免浩大的工程,我們就借助于自己的眼睛作為儀器,來大致地確定一下LED的亮度等級(jí)。因?yàn)椴幌牍?jié)外生枝再來做個(gè)數(shù)碼管用作顯示,所以這里用了最原始的方法來做這個(gè)工作。程序2是一段調(diào)整數(shù)碼管亮度的程序,變量LedBright的值決定了LED的亮度。不斷改寫LedBright,然后重新編譯、鏈接,再將得到的代碼寫入芯片來觀察LED的亮度。為簡單起見,這里將LED的亮度分成20等分,通過人眼大致判斷的方法來確定對(duì)應(yīng)的LedBrigh{f直的大小。和理想的方法相比,這是一個(gè)非常屎始和粗略的方法,但就是這樣,要分出這20個(gè)級(jí)別來,要花的時(shí)間也不少,建議讀者都能夠動(dòng)手做一做以體會(huì)其中的艱辛。從作者的經(jīng)驗(yàn)來看,不同型號(hào)的LED對(duì)于參數(shù)的影響很大,如果使用高亮度LED,R2應(yīng)取1k(/,而普通亮度的LED,F(xiàn)l2可以取3300。另外,各人眼光也不盡相同,作者獲得的數(shù)據(jù)未必與你得到的一致,因此自己做一做是很有必要的。
通過實(shí)驗(yàn),確定了20個(gè)數(shù)值對(duì)應(yīng)20級(jí)亮度,那么程序3就是用來實(shí)現(xiàn)熒火蟲燈了。這段程序就不再多作解釋了,這里使用了查表的方法來確定亮度的變化。將程序?qū)懭胄酒\(yùn)行,馬上就能看到LED的變化了,瞧,一閃一閃,那不正是夏夜里的熒火蟲嗎?
上一篇:控制器功能介紹
熱門點(diǎn)擊
- 信號(hào)波和載波的關(guān)系
- 混頻器-加減法器件
- 使用共振電路和負(fù)阻元件
- 定子繞組串接飽和電抗器調(diào)節(jié)電壓的調(diào)速方法
- 提高三端穩(wěn)定器輸出電壓的方法
- 無功電流和無功功率
- 開關(guān)電路十濾波器=降壓型開關(guān)電源
- 各電容器的確定
- 程序分析
- 制作感言
推薦技術(shù)資料
- PCB布線要點(diǎn)
- 整機(jī)電路圖見圖4。將電路畫好、檢查無誤之后就開始進(jìn)行電... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究