在短短的兩周內(nèi),我們集中學(xué)習(xí)了ARM體系結(jié)構(gòu)相關(guān)課程和ucos基礎(chǔ)課程,并第一次深入一個操作系統(tǒng)的內(nèi)部進(jìn)行詳細(xì)的學(xué)習(xí)探究。
在學(xué)習(xí)了ucos和相關(guān)工具下的demo之后,我終于將匯編、hex、c等底層代碼和硬件聯(lián)系在了一起。一直做web、桌面應(yīng)用開發(fā),我這次算是體驗(yàn)到了另外的世界和開發(fā)思路。
?
關(guān)注于:
- 代碼計數(shù)用大小k
- 關(guān)注效率
- 關(guān)注空間
- 注意賦值--掩碼賦值
- 學(xué)會看芯片時序圖
- 看清引腳
- 等等
下面開始我們的Hello world之旅吧。
在實(shí)驗(yàn)室寫blog,沒有l(wèi)inux環(huán)境,所以在描述windows相關(guān)操作和技巧時會有疏漏,如果疑問敬請斧正。
?
點(diǎn)燈和閃亮的基本原理:對于一個發(fā)光二極管(流水燈的顯示器),其發(fā)光是電流可正向通過,也就是說兩邊一邊高電壓一邊低電壓。如下圖所示,如果上面是高電壓,下面是低電壓則這個發(fā)光二極管就可以亮。
?
首先需要建立一個工程,在這里使用的是一個強(qiáng)大的嵌入式IDE:Keil uVision3. Project->New u...Project->choose a file-> select device -> NXP(LPC2124)->確定拷貝數(shù)據(jù)
然后,讓這個工程在編譯完文件后輸出hex(用于電路板的二進(jìn)制文件)文件.
Project-> Options about... -> Output -> Create HEX File
?
最后編碼并生成。
繪制電路圖,并導(dǎo)入HEX文件。
?電路圖的關(guān)鍵:左下方電源的配置連接,發(fā)光二極管的電阻連接。
代碼結(jié)構(gòu):
#include <LPC21xx.h> //多用宏,不論是遷移還是使用都很方便,而且方便閱讀 #define ALL 0x3;//用于燈連接的端口 P0.0 P0.1 unsigned long i;//用于延時計數(shù)的變量 int j; void delay(){ i=0x000FFFFF; while(i)i--; } int main(){ //所有的芯片默認(rèn)狀態(tài)時GPIO,輸入輸出數(shù)據(jù)口 IO0DIR = ALL;//對應(yīng)的二進(jìn)制數(shù)是:0000 0000 0000 0011 , //即對應(yīng)的P0.0, P0.1口為數(shù)據(jù)輸出口 j = 0; while(1){ IO0SET = ALL;//導(dǎo)致二極管的兩極都為高電位,從而不亮 j++; j%=2;//奇偶計數(shù) if(j){ IO0CLR = 0x1; //讓P0.0低電壓 }else{ IO0CLR = 0x2; //讓P0.1低電壓 } delay(); } }
?細(xì)節(jié)的討論還會補(bǔ)充。
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
