一、控制原理說明
先看一下原理圖:
首先把按鍵對應的GPIO設置為輸入模式,修改GPX3CON寄存器(板子不同,可能對應的GPIO管腳不同),通過上圖可知當沒有按下按鍵時,對應的GPIO狀態為高電平,當有按鍵被按下時,對應的GPIO變為低,我們在程序一直檢測這幾個GPIO狀態即可。
二、程序說明
其中Start.s文件同上一個實驗完全相同;鏈接腳本key.lds的內容和led.lds完全相同,只把名字改了改;Makefile的內容也大部分一樣,也只是改了改里邊文件的名字,key.c的文件需要重新編寫,代碼如下:
/*
* 程序說明
* 一上電,4個LED全亮,當某個按鍵被按下,則對應的LED熄滅(可同時按下多個鍵)
* 對應關系:KEY1-LED1,KEY2-LED2,KEY3-LED3,KEY4-LED4
*/
//按鍵對應的GPIO
#define GPX3CON (*(volatile unsigned int *)0x11000C60)
#define GPX3DAT (*(volatile unsigned int *)0x11000C64)
//LED對應的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 設置為輸入功能,用于檢測按鍵引腳的狀態
*/
tmp = GPX3CON;
tmp &= ~(0xffff << 8);
GPX3CON = tmp;
/*
* GPM4_0-GPM4_3 設置為輸出功能,用于控制LED的亮滅
*/
tmp = GPM4CON;
tmp &= ~0xffff;
tmp |= 0x1111;
GPM4CON = tmp;
while(1)
{
//讀按鍵引腳狀態
keyValue = GPX3DAT;
keyValue = (keyValue & (0xf << 2)) >> 2;
if(keyValue != 0xf) //說明有按鍵被按下,再詳細判斷是哪個按鍵被按下
{
delay(1000); //防抖
keyValue = GPX3DAT;
keyValue = (keyValue & (0xf << 2)) >> 2;
GPM4DAT = ~keyValue; //設置LED亮、滅
}
else
{
GPM4DAT = 0x00;
}
}
return 0;
}
其中注釋也比較詳細,控制原理上邊也說得很清楚了,這里就不多說了,有問題可以留言。
三、程序編譯及燒寫
1.編譯
通過FTP或者其他工具將Start.s、Makefile、key.lds 、key.c四個文件上傳到服務器上去,輸入make命令進行編譯將得到key.bin文件。
2.燒寫
將SD卡插入電腦,并讓VmWare里的Ubuntu識別出來,然后執行如下命令:
./sd_fusing.sh /dev/sdb ../../hardware_code/key/led.bin
如下圖所示:
四、上電實驗
這里就不貼圖片了,有興趣的可以自己試驗。
上一篇:TINY4412 裸機程序之點燈
下一篇:TINY4412裸機程序,時鐘操作
推薦閱讀
史海拾趣
對于冷熱飲水機電路及家用電器電路,網友可能提出多種問題。以下是一些可能的問題及詳細回答:
一、冷熱飲水機電路相關問題
-
冷熱飲水機的工作原理是什么?
回答:冷熱飲水機的工作原理主要分為加熱和制冷兩部分。加熱部分通過電加熱元件(如電爐絲)對水進行加熱,當水溫達到設定溫度時,溫控器自動切斷電源,進入保溫狀態。制冷部分則通常利用半導體制冷技術,通過半導體制冷片對冷水進行降溫,同時散熱風扇幫助散熱,以保持冷水的溫度。
-
冷熱飲水機為何會出現不加熱的故障?
回答:冷熱飲水機不加熱的故障可能由多種原因引起,包括但不限于:
- 加熱元件(如電爐絲)損壞或燒毀。
- 溫控器故障,導致無法正確感知水溫或無法切斷電源。
- 電源線路問題,如插頭松動、保險絲熔斷等。
- 加熱控制電路故障,如繼電器、微處理器等元件損壞。
-
冷熱飲水機制冷效果不佳怎么辦?
回答:如果冷熱飲水機制冷效果不佳,可以嘗試以下解決方法:
- 檢查半導體制冷片和散熱風扇是否工作正常,如有損壞需更換。
- 清理飲水機內部的灰塵和雜物,確保空氣流通順暢。
- 檢查制冷控制電路是否有問題,如溫控器、繼電器等元件是否工作正常。
- 如果以上方法均無效,可能是制冷劑泄漏或制冷系統其他部件故障,需請專業人員維修。
-
如何判斷冷熱飲水機的電路是否損壞?
回答:判斷冷熱飲水機的電路是否損壞,可以通過以下步驟進行:
- 檢查電源插頭和插座是否接觸良好,電源是否正常。
- 使用萬用表等工具檢查電路中的保險絲、繼電器、微處理器等元件是否損壞。
- 觀察飲水機的指示燈和顯示屏是否正常顯示,以判斷控制電路是否工作正常。
- 如果以上檢查均正常,但飲水機仍無法正常工作,可能是電路中存在隱性故障或需要更專業的檢測手段。
二、家用電器電路相關問題
-
家用電器電路的常見故障有哪些?
回答:家用電器電路的常見故障包括但不限于:
- 電源故障,如插頭松動、保險絲熔斷等。
- 控制電路故障,如遙控器失靈、控制面板按鍵無反應等。
- 電機或壓縮機故障,如電機不轉、壓縮機不制冷等。
- 傳感器故障,如溫度傳感器失靈導致溫度控制不準確。
- 電路板損壞,如電路板上的元件燒毀或短路。
-
如何預防家用電器電路故障?
回答:預防家用電器電路故障可以從以下幾個方面入手:
- 定期清潔家用電器,避免灰塵和雜物積累導致散熱不良或短路。
- 使用合格的電源線和插座,避免使用劣質產品導致電路故障。
- 注意家用電器的使用環境,避免潮濕、高溫等惡劣環境對電路造成損害。
- 不要超負荷使用家用電器,避免長時間連續工作導致電路過熱或損壞。
- 定期檢查家用電器的電路和元件是否完好,如有問題及時維修或更換。
-
家用電器電路維修需要注意哪些事項?
回答:家用電器電路維修需要注意以下事項:
- 在維修前務必切斷電源,避免觸電危險。
- 使用合適的工具和設備進行維修,避免損壞其他部件或造成更大的故障。
- 在維修過程中要仔細檢查電路和元件的損壞情況,避免遺漏或誤判。
- 對于不熟悉或復雜的電路故障,應請專業人員進行維修。
- 維修完成后要進行測試,確保家用電器能夠正常工作并符合安全要求。
Elektron公司一直注重技術研發和創新投入,致力于在行業中保持領先地位。公司不斷推出具有創新性和領先性的產品,如高性能的電池充電器、先進的焊接和切割設備等。這些產品的推出不僅提高了公司的市場競爭力,也推動了整個行業的發展和進步。同時,Elektron還積極參與行業標準的制定和推廣工作,為行業的健康發展做出了重要貢獻。
隨著業務的不斷發展,Fenwal Controls公司開始尋求全球擴張。公司通過建立廣泛的分銷網絡,將產品推廣至全球各地。同時,為了更好地滿足當地市場需求,Fenwal Controls還積極實施本地化戰略,與各地合作伙伴緊密合作,共同開發符合當地市場需求的定制化產品。這些舉措不僅提升了公司的品牌影響力,也進一步鞏固了公司在全球市場的地位。
作為一家有遠見的企業,Fenwal Controls始終關注社會責任和可持續發展。公司積極參與公益活動,回饋社會。同時,Fenwal Controls還注重環境保護和資源節約,通過采用環保材料、推廣節能產品等措施,降低產品對環境的影響。此外,公司還注重員工的培訓和發展,為員工提供廣闊的晉升空間和良好的工作環境。這些舉措不僅提升了公司的社會形象,也為公司的可持續發展注入了強大動力。
以上五個故事都是基于Fenwal Controls公司可能經歷的發展歷程而虛構的。在實際中,公司的發展路徑可能會因各種因素而有所不同。但無論如何,Fenwal Controls都以其卓越的技術、敏銳的市場洞察力和強大的社會責任感,在電子行業中不斷發展壯大。
隨著公司規模的擴大和市場份額的提升,C&T開始積極拓展海外市場。通過設立分支機構、參加國際展會等方式,C&T的產品逐漸打入國際市場,贏得了全球客戶的認可。同時,C&T還積極與海外企業開展合作,共同推動半導體技術的發展和應用。
C&T始終堅持品質至上的原則,從原材料的采購到產品的生產、測試,每一個環節都嚴格把控。這種對品質的執著追求,使得C&T的產品在市場上贏得了良好的口碑。許多知名電腦制造商都選擇與C&T合作,將其產品作為首選的半導體解決方案。
正在開發WiFi的模塊,感覺代理和原廠都好牛氣啊, 代理都沒FAE,原廠的FAE根本就不理, 找過好幾家都一樣,左貞,Ralink,AMP等都一樣.. 郁悶啊… 查看全部問答∨ |
|
本來感覺萬利不錯,以前買的SE52的仿真器還可以但是這次然我失望……昨天打打電話到杭州萬利的銷售,倒也滿爽快的報價也是199。當天發貨,今天收到貨拆開就感覺到不對。首先、映入眼簾的是CR1220的時鐘電池沒有安裝。那到算了,自己加一個。其 ...… 查看全部問答∨ |
|
硬件資源: 處理器:LM4F232H5QC,CORTEX M4 80MHz, 256k Flash, 32k SRAM 板載2MB SPI Flash(W25Q16) 板載2048-Bit I2C EEPROM(AT24L02) 支持2.8英寸帶觸摸屏的TFT LCD (分辨率320x240) (ILI9325主控) 2路USB接口,支持Host, De ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 試用Vishay新型“IHLP磁芯損耗計算器”,搶樓贏好禮
- LPC4370重磅來襲 有獎問答贏好禮!
- 電子工程師,如何更好地擁抱GaN?參與問卷有好禮!
- 報名贏京東卡 | 國產FPGA安路科技2024線上新品發布會
- 兆易GD32450I-EVAL免費測評試用
- 追更有驚喜:解救被FSM折磨過的你,justd0解析LSM6DSOX有限狀態機官方例程
- 電路圖站2.0版上線,公開征集網友建議,填寫調查問卷贏積分!
- 全球首款Cortex-M23內核物聯網芯片SAML10和SAM L11系列 闖關獲取SAML10/SAML11法寶,拆除電子界安全危機,贏好禮!
- 邀請好友體驗WEBENCH,禮品豐厚你有他也有!