新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 自學(xué)Cortex-M3(2):按鍵實驗

自學(xué)Cortex-M3(2):按鍵實驗

作者: 時間:2012-07-04 來源:網(wǎng)絡(luò) 收藏

有輸出總會有輸入,今天測試一下的功能,第一節(jié)已經(jīng)說過了與GPIO端口相關(guān)的寄存器,這里不在重復(fù),想要從端口讀取數(shù)據(jù),首先把FIODIR這個寄存器設(shè)置為輸入,再從FIOPIN寄存器讀取數(shù)據(jù)就可以了,這個寄存器具有讀寫功能。下面說一下這個的電路圖,如下所示:

本文引用地址:http://m.butianyuan.cn/article/148807.htm

圖1 JoySTick連線圖

  關(guān)于電路還有一個,不過是接在外部中斷0 上的,其電路圖如下圖所示:

  這次沒有涉及到外部中斷,都是做普通的IO輸入使用的,所以在這里外部中斷就做學(xué)習(xí)總結(jié)了。下面給出這次的主程序:

  /*********************************************************************************

  文件名稱:mian.c

  功 能: 主要調(diào)度函數(shù)及應(yīng)用函數(shù)

  編譯環(huán)境: MDKV4.12

  時 鐘: 外部12Mhz

  日 期: 11/08/16

  作 者: 懶貓愛飛

  備 注:NULL

  ---------------------------------------------------------------------------------

  修改內(nèi)容:NULL

  修改日期:XXXX年xx月xx日 xx時xx分

  修改人員:xxx xxx xxx

  **********************************************************************************/

  #includemain.h

  volatile unsigned lONg SysTickCnt; /* 用于系統(tǒng)時鐘計數(shù)*/

  /********************************************************************************

  * 函數(shù)名稱:void SysTick_Handler (void)

  * 函數(shù)功能: 系統(tǒng)節(jié)拍定時器中斷函數(shù),每1ms計數(shù)一次

  * 入口參數(shù): 無

  * 出口參數(shù): 無

  * 備 注:無

  *******************************************************************************/

  void SysTick_Handler (void)

  {

  SysTickCnt++;

  }

  /********************************************************************************

  * 函數(shù)名稱:void Delay (unsigned long tick)

  * 函數(shù)功能: 毫秒級延時函數(shù)

  * 入口參數(shù): unsigned long tick -- 延時時長

  * 出口參數(shù): 無

  * 備 注:無

  *******************************************************************************/

  void DelayMs (unsigned long tick)

  {

  unsigned long systickcnt;

  systickcnt = SysTickCnt;

  while ((SysTickCnt - systickcnt) tick);

  }

  /********************************************************************************

  * 函數(shù)名稱:void PortInit(void)

  * 函數(shù)功能: 端口初始化

  * 入口參數(shù): 無

  * 出口參數(shù): 無

  * 備 注:無

  *******************************************************************************/

  void PortInit(void)

  {

  GPIO1->FIODIR = 0xB0000000; /* LEDs on PORT1 defined as Output */

  GPIO2->FIODIR = 0x0000007C; /* LEDs on PORT2 defined as Output */

  LedAllOff(); /* 初始化時熄滅所有的燈*/

  }


上一頁 1 2 下一頁

關(guān)鍵詞: 實驗 按鍵 Cortex-M3 自學(xué)

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉