連接器選項 ... ARM入門筆記(4) " />

国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

ARM入門筆記(4)

發(fā)布時間:2010-8-26 17:25    發(fā)布者:絕對好文
關(guān)鍵詞: ARM入門筆記
第四章 鍵盤輸入

——I/O輸入實驗

一.實驗?zāi)康?br />
能夠正確讀取PIO的管腳狀態(tài),實現(xiàn)當(dāng)有按鍵按下時,LED點亮,否則滅。

二.實驗程序和參數(shù)設(shè)置

1>連接器選項設(shè)置和啟動代碼都與上個實驗相同

2> C語言的代碼

#i nclude "AT91SAM7S64.h" //特殊功能寄存器頭文件。類似與51單片機中reg51.h
#i nclude "Board.h"   //定義目標(biāo)板的頭文件
int main(void)
{ unsigned int Key_Val;  //定義變量,unsigned int為32位,C51是16位
  *AT91C_PIOA_PER = LED_MASK | SW_MASK;//使能LED、KEY腳I/O口功能   *AT91C_PIOA_ODR = SW_MASK;//使能4個KEY對應(yīng)管腳的輸入功能
*AT91C_PIOA_OER = LED_MASK;//使能4個LED管腳的輸出功能
  while (1)
  {
   Key_Val = *AT91C_PIOA_PDSR;//讀管腳的電平狀態(tài)
   if (Key_Val & SW1)
   {
  *AT91C_PIOA_SODR = LED1;//將狀態(tài)反映給LED
}
   else
{
*AT91C_PIOA_COER = LED1;//按鈕按下時,LED1亮
}
}
}

三.出現(xiàn)的問題與解決方法

1> 無論作輸入用的I/O口電平如何變化,管腳狀態(tài)寄存器(AT91C_PIOA_PDSR)的內(nèi)容始終為0,即I/O口的輸入功能沒起作用。
原因是AT91SAM7Sxx內(nèi)部集成了功率管理控制器,用它來控制所有外設(shè)的時鐘以達到優(yōu)化功耗的目的。所以只有使能了PIO的外圍時鐘,PIO外設(shè)才會工作,才能讀入輸入管腳的狀態(tài)。那么為什么PIO作為輸出時不需要使能外圍時鐘呢?我個人認(rèn)為這與內(nèi)部外設(shè)在數(shù)字電路上的實現(xiàn)有關(guān),輸出功能只需要組合邏輯電路(不用時鐘)就能實現(xiàn),而輸入功能則需要用到時序邏輯電路(需要時鐘)才能實現(xiàn)。
因此,必須在main()函數(shù)的開頭增加如下兩條時鐘使能的語句:

*AT91C_PMC_SCER = AT91C_CKGR_MOSCEN;//使能系統(tǒng)時鐘寄存器的處理器時鐘
*AT91C_PMC_PCER = 1 91C_ID_PIOA; //使能PIOA外圍時鐘

四.總結(jié)

當(dāng)要使AT91SAM7S64特定的外設(shè)工作時,必須使能相應(yīng)外設(shè)的時鐘控制寄存器。相反,如果不用相應(yīng)的外設(shè),禁能相應(yīng)的時鐘可以降低功耗。
本文地址:http://m.4huy16.com/thread-23769-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
長話短說 發(fā)表于 2010-9-4 11:28:31
謝了
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Microchip第22屆中國技術(shù)精英年會——采訪篇
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術(shù)精英年會深圳站回顧
  • 電動兩輪車設(shè)計生態(tài)系統(tǒng)
  • Microchip第22屆中國技術(shù)精英年會上海首站開幕
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表