用的是輪詢方式,后面會(huì)有中斷方式的實(shí)現(xiàn),閑話少說,進(jìn)入正題,程序由前一個(gè)實(shí)驗(yàn)Tiny4412之C語言實(shí)現(xiàn)流水燈更改而來:
一、控制原理說明
先看一下原理圖:
按鍵原理圖
首先把按鍵對應(yīng)的GPIO設(shè)置為輸入模式,修改GPX3CON寄存器(板子不同,可能對應(yīng)的GPIO管腳不同),通過上圖可知當(dāng)沒有按下按鍵時(shí),對應(yīng)的GPIO狀態(tài)為高電平,當(dāng)有按鍵被按下時(shí),對應(yīng)的GPIO變?yōu)榈停覀冊诔绦蛞恢睓z測這幾個(gè)GPIO狀態(tài)即可;
二、程序說明
其中Start.s文件同上一個(gè)實(shí)驗(yàn)完全相同;鏈接腳本key.lds的內(nèi)容和led.lds完全相同,只把名字改了改;Makefile的內(nèi)容也大部分一樣,也只是改了改里邊文件的名字,key.c的文件需要重新編寫,代碼如下:
====================================================================
// 程序說明
//一上電,4個(gè)LED全亮,當(dāng)某個(gè)按鍵被按下,則對應(yīng)的LED熄滅(可同時(shí)按下多個(gè)鍵)
//對應(yīng)關(guān)系:KEY1-LED1,KEY2-LED2,KEY3-LED3,KEY4-LED4
//按鍵對應(yīng)的GPIO
#define GPX3CON (*(volatile unsigned int *)0x11000C60)
#define GPX3DAT (*(volatile unsigned int *)0x11000C64)
//LED對應(yīng)的GPIO
#define GPM4CON (*(volatile unsigned int *)0x110002E0)
#define GPM4DAT (*(volatile unsigned int *)0x110002E4)
void delay(volatile int time)
{
for(; time > 0; time-- );
}
int main(void)
{
unsigned long tmp = 0;
unsigned char keyValue = 0;
//GPX3_2-GPX3_5 設(shè)置為輸入功能,用于檢測按鍵引腳的狀態(tài)
tmp = GPX3CON;
tmp &= ~(0xffff << 8);
GPX3CON = tmp;
// GPM4_0-GPM4_3 設(shè)置為輸出功能,用于控制LED的亮滅
tmp = GPM4CON;
tmp &= ~0xffff;
tmp |= 0x1111;
GPM4CON = tmp;
while(1)
{
//讀按鍵引腳狀態(tài)
keyValue = GPX3DAT;
keyValue = (keyValue & (0xf << 2)) >> 2;
if(keyValue != 0xf) //說明有按鍵被按下,再詳細(xì)判斷是哪個(gè)按鍵被按下
{
delay(1000); //防抖
keyValue = GPX3DAT;
keyValue = (keyValue & (0xf << 2)) >> 2;
GPM4DAT = ~keyValue; //設(shè)置LED亮、滅
}
else
{
GPM4DAT = 0x00;
}
}
return 0;
}
====================================================================
其中注釋也比較詳細(xì),控制原理上邊也說得很清楚了,這里就不多說了,有問題可以留言。
三、程序編譯及燒寫
1.編譯
通過FTP或者其他工具將Start.s、Makefile、key.lds 、key.c四個(gè)文件上傳到服務(wù)器上去,輸入make命令進(jìn)行編譯將得到key.bin文件。
2.燒寫
將SD卡插入電腦,并讓VmWare里的Ubuntu識(shí)別出來,然后執(zhí)行如下命令:
1 | sudo ./sd_fusing.sh /dev/sdb ../3_key_scan/key.bin |
如下圖所示:
將程序燒到SD卡
四、上電實(shí)驗(yàn)
程序運(yùn)行圖一
程序運(yùn)行圖二
上圖所示,圖一是沒有按鍵被按下,四個(gè)LED全都被點(diǎn)亮,圖二是有兩個(gè)鍵被我同時(shí)按下
上一篇:Exynos4412時(shí)鐘體系分析
下一篇:Exynos4412之C語言實(shí)現(xiàn)流水燈
推薦閱讀
史海拾趣
在追求經(jīng)濟(jì)效益的同時(shí),Cermetek Microelectronics公司也積極履行社會(huì)責(zé)任。公司注重環(huán)保和可持續(xù)發(fā)展,采用環(huán)保材料和生產(chǎn)工藝,減少對環(huán)境的影響。此外,公司還積極參與社會(huì)公益事業(yè),為社會(huì)做出貢獻(xiàn)。這種負(fù)責(zé)任的態(tài)度不僅贏得了社會(huì)各界的認(rèn)可,也為公司的長遠(yuǎn)發(fā)展注入了正能量。
這五個(gè)故事展示了Cermetek Microelectronics公司在電子行業(yè)中的發(fā)展歷程和取得的成就。通過技術(shù)積累、品質(zhì)管理、持續(xù)創(chuàng)新、國際化戰(zhàn)略和社會(huì)責(zé)任等方面的努力,公司逐漸在微電子領(lǐng)域樹立起了自己的品牌形象和市場地位。
隨著全球市場的不斷拓展,超霸電池的銷售網(wǎng)絡(luò)遍布亞洲、歐洲和北美等多個(gè)國家和地區(qū)。公司始終堅(jiān)持綠色環(huán)保的生產(chǎn)理念,研發(fā)出無汞無鎘的電池產(chǎn)品,可隨生活垃圾丟棄而不會(huì)對環(huán)境造成影響。此外,超霸電池還積極參與環(huán)保事業(yè),旗下多家工廠獲得了UL美國安全試驗(yàn)所廢棄物零填埋認(rèn)證。這些舉措不僅彰顯了超霸電池的社會(huì)責(zé)任感,也為其在國際市場上樹立了良好的品牌形象。
E-San Electronic Co Ltd非常重視人才培養(yǎng)和團(tuán)隊(duì)建設(shè)。公司建立了完善的培訓(xùn)機(jī)制,為員工提供了各種專業(yè)技能和綜合素質(zhì)的培訓(xùn)機(jī)會(huì)。同時(shí),公司還注重員工的職業(yè)規(guī)劃和晉升通道建設(shè),為員工提供了廣闊的發(fā)展空間和良好的職業(yè)前景。這些措施不僅提升了員工的綜合素質(zhì)和業(yè)務(wù)能力,也為企業(yè)的發(fā)展注入了源源不斷的活力。
近年來,Desoutter公司開始重視中國市場的發(fā)展,并加大了在中國的投資和布局。公司在中國設(shè)立了多個(gè)銷售和服務(wù)中心,以便更好地服務(wù)中國客戶。同時(shí),Desoutter公司還與中國本土企業(yè)開展合作,共同開發(fā)適合中國市場的產(chǎn)品。這些舉措使Desoutter公司在中國市場的份額不斷擴(kuò)大,品牌影響力也得到了提升。
以上五個(gè)故事涵蓋了Desoutter公司在電子行業(yè)中的發(fā)展歷程、技術(shù)創(chuàng)新、國際化戰(zhàn)略、合并與擴(kuò)張以及中國市場的發(fā)展等方面。這些故事基于事實(shí)描述,旨在展現(xiàn)Desoutter公司在電子行業(yè)中的成長和變化。
高通公司在追求技術(shù)創(chuàng)新的同時(shí),也積極履行企業(yè)社會(huì)責(zé)任。公司發(fā)布了《2023高通中國企業(yè)責(zé)任報(bào)告》,詳細(xì)介紹了高通如何通過賦能數(shù)字化轉(zhuǎn)型、負(fù)責(zé)任地經(jīng)營以及可持續(xù)地運(yùn)營等戰(zhàn)略重點(diǎn)領(lǐng)域,推動(dòng)社會(huì)公平發(fā)展。高通與中國鄉(xiāng)村發(fā)展基金會(huì)、中國紅十字基金會(huì)等多個(gè)機(jī)構(gòu)合作,開展智慧農(nóng)業(yè)、基層醫(yī)務(wù)工作者培訓(xùn)等項(xiàng)目,助力鄉(xiāng)村振興和醫(yī)療衛(wèi)生事業(yè)發(fā)展。此外,高通還致力于STEM教育,通過合作項(xiàng)目為下一代創(chuàng)新者提供技能和知識(shí)支持。這些舉措不僅體現(xiàn)了高通的社會(huì)責(zé)任感,也為其在電子行業(yè)中的長遠(yuǎn)發(fā)展奠定了良好的社會(huì)基礎(chǔ)。
哪位高人預(yù)測一下今年的題目啊,很多人都說今年控制類的不會(huì)再以小車為載體了,那會(huì)以什么為載體呢?哪位高人預(yù)測一下啊。:\'(… 查看全部問答∨ |
|
以數(shù)字示波器為例,很多用戶可能都知道示波器的一些傳統(tǒng)的指標(biāo),比如帶寬,采樣率,存儲(chǔ)深度等等,甚至出現(xiàn)在選型的時(shí)候根據(jù)指標(biāo)”比數(shù)大小”,以為數(shù)大的就比數(shù)小的好 ---其實(shí)不然!要想真正了解數(shù)字示波器,就必須深入洞察隱藏在標(biāo)稱的指標(biāo)背后的 ...… 查看全部問答∨ |
摘要:SPI 接口是一種同步串行通訊接口,具備SPI 接口的外圍芯片十分豐富,應(yīng)用非常廣泛。但是,具備SPI 接口的單片機(jī)種類較少。介紹了一種基于單片機(jī)的模擬SPI 接口的方法,使沒有SPI 接口的單片機(jī)擴(kuò)展帶有SPI 接口的外圍芯片成為現(xiàn)實(shí)?!? 查看全部問答∨ |
我用Multisim 10.0仿真的一個(gè)電路。 請教高手:如下圖所示的Multisim 10.0電路仿真圖中, 函數(shù)發(fā)生器XFG1和XFG3的設(shè)置為: 函數(shù)發(fā)生器XFG2和XFG4的設(shè)置為: 問題是:明明是比較器同相端電壓始終高于反相端電壓,但經(jīng)比較器得到的波形為什么會(huì)出 ...… 查看全部問答∨ |
tidCrunch tidMonitor兩任務(wù)的優(yōu)先級應(yīng)互調(diào) tidMonitor優(yōu)先級應(yīng)最低!… 查看全部問答∨ |
最近正用811練習(xí)TFT液晶,在網(wǎng)上也看了好些天資料,可是還是沒什么頭緒,自己也寫了程序 ,可是液晶一點(diǎn)反應(yīng)也沒有?哪位大蝦給我點(diǎn)思路,主要是液晶初始化那塊,我對它是頭大了,寄存器有好幾十個(gè),是不是每個(gè) 寄存器都要初始化???還是就幾個(gè)重 ...… 查看全部問答∨ |
剛剛逛論壇時(shí),發(fā)現(xiàn)又有活動(dòng),此時(shí)心情非常激動(dòng),以段時(shí)間團(tuán)購了一塊MSP430Launchpad開發(fā)板,正在研究中,這也是給我們一個(gè)了解TI單片機(jī)的機(jī)會(huì),非常感謝. DK-KM3S9B96開發(fā)板 DK-LM3S9B96開發(fā)板是支持10/100M以太網(wǎng)、USB OTG、3.5寸觸摸屏 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 穩(wěn)壓器到底有哪些作用?如何選擇穩(wěn)壓器
- 穩(wěn)壓器有哪些使用規(guī)范?如何選擇穩(wěn)壓器的功率
- 穩(wěn)壓器如何安裝?4種必須掌握的穩(wěn)壓器接線方法
- 變壓器的保護(hù)有哪些?變壓器過負(fù)荷要求了解嗎
- 飽和變壓器有哪些特點(diǎn)?飽和/非飽和變壓器有什么區(qū)別
- 短路阻抗對變壓器有哪些影響?如何維護(hù)變壓器
- 如何進(jìn)行變壓器減容?短路阻抗和變壓器有什么關(guān)聯(lián)
- 如何測量變壓器各繞組電壓?變壓器減容是怎么回事
- 隔離變壓器的工作原理是什么?隔離變壓器如何選型
- 隔離變壓器對電源有影響嗎?隔離變壓器應(yīng)用方法介紹
- 如何用3個(gè)關(guān)鍵步驟,來確保下一代設(shè)計(jì)安全性,深入解讀嵌入式設(shè)備DeepCover加密控制器,看視頻答題贏好禮!
- 電源技術(shù)專輯第2期:從零開始 DIY 雙向高效 DC-DC!
- 打卡英飛凌碳化硅MOSFET新品快閃店
- 【DIY數(shù)控電源】入圍方案及后續(xù)活動(dòng)安排!
- 有獎(jiǎng)直播:瑞薩電子安全物聯(lián)網(wǎng)套件為您提供安全云聯(lián)接解決方案
- VISHAY醫(yī)療主題月 幸運(yùn)闖關(guān)贏大獎(jiǎng)!
- 有獎(jiǎng)直播:Littelfuse電動(dòng)車充電樁及車載充電器保護(hù)設(shè)計(jì)方案
- 有獎(jiǎng)直播|瑞薩電子 RA 系列產(chǎn)品開發(fā)工具之 FSP4.0.0 新特性介紹
- 免費(fèi)申請|基于STM32H7處理器的機(jī)器視覺微控制器板OpenMV4 Cam H7
- CPU與存儲(chǔ)外設(shè)之間的地址線連接方法
- ARM外設(shè)flash及SDRAM的地址連接
- ARM中的鏈接地址(為什么ARM要重定位)
- arm的MMU詳解(虛擬地址)
- arm地址線的鏈接方式
- 世強(qiáng)聯(lián)手是德建實(shí)驗(yàn)室 所有企業(yè)均可免費(fèi)測試
- 凌華科技發(fā)布全新MCM-100設(shè)備狀態(tài)監(jiān)測系統(tǒng)
- 貿(mào)澤備貨Analog Devices LTM8065 μModule穩(wěn)壓器
- 從電商平臺(tái)到開放實(shí)驗(yàn)室,世強(qiáng)免費(fèi)為企業(yè)提供創(chuàng)新服務(wù)
- 綠色和平組織嗆蘋果回收機(jī)器人:應(yīng)該延長產(chǎn)品壽命