新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 自學Cortex-M3(2):按鍵實驗

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

        作者: 時間:2012-07-04 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/148807.htm

        圖1 JoySTick連線圖

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

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

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

          文件名稱:mian.c

          功 能: 主要調度函數及應用函數

          編譯環境: MDKV4.12

          時 鐘: 外部12Mhz

          日 期: 11/08/16

          作 者: 懶貓愛飛

          備 注:NULL

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

          修改內容:NULL

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

          修改人員:xxx xxx xxx

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

          #includemain.h

          volatile unsigned lONg SysTickCnt; /* 用于系統時鐘計數*/

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

          * 函數名稱:void SysTick_Handler (void)

          * 函數功能: 系統節拍定時器中斷函數,每1ms計數一次

          * 入口參數: 無

          * 出口參數: 無

          * 備 注:無

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

          void SysTick_Handler (void)

          {

          SysTickCnt++;

          }

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

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

          * 函數功能: 毫秒級延時函數

          * 入口參數: unsigned long tick -- 延時時長

          * 出口參數: 無

          * 備 注:無

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

          void DelayMs (unsigned long tick)

          {

          unsigned long systickcnt;

          systickcnt = SysTickCnt;

          while ((SysTickCnt - systickcnt) tick);

          }

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

          * 函數名稱:void PortInit(void)

          * 函數功能: 端口初始化

          * 入口參數: 無

          * 出口參數: 無

          * 備 注:無

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

          void PortInit(void)

          {

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

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

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

          }


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 二手房| 凭祥市| 同德县| 方山县| 辽中县| 榆林市| 靖江市| 蒲江县| 金塔县| 满洲里市| 普定县| 搜索| 瑞安市| 建阳市| 万源市| 望谟县| 青神县| 竹溪县| 邵阳市| 济南市| 赣榆县| 宜兰县| 莎车县| 封开县| 金华市| 务川| 申扎县| 保靖县| 巴彦淖尔市| 万全县| 芦山县| 分宜县| 琼中| 监利县| 湾仔区| 文水县| 于都县| 利川市| 平昌县| 浪卡子县| 萍乡市|