有輸出總會有輸入,今天測試一下按鍵的功能,第一節已經說過了與GPIO端口相關的寄存器,這里不在重復,想要從端口讀取數據,首先把FIODIR這個寄存器設置為輸入,再從FIOPIN寄存器讀取數據就可以了,這個寄存器具有讀寫功能。下面說一下這個實驗的電路圖,如下所示:
圖1 JoySTick按鍵連線圖
關于按鍵電路還有一個,不過是接在外部中斷0 上的,其電路圖如下圖所示:
這次實驗沒有涉及到外部中斷,都是做普通的IO輸入使用的,所以在這里外部中斷就做學習總結了。下面給出這次實驗的主程序:
電感器的型號 /*********************************************************************************
文件名稱:mian.c
功 能: 主要調度函數及應用函數
編譯環境: MDKV4.12
時 鐘: 外部12Mhz
日 期: 11/08/16
作 者: 懶貓愛飛
備 注:NULL
---------------------------------------------------------------------------------
修改內容:NULL
修改日期:XXXX年xx月xx日 xx時xx分
繞行電感器 修改人員:xxx xxx xxx
**********************************************************************************/
#include"main.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)
貼片電感 * 函數功能: 端口初始化 大功率電感廠家 |大電流電感工廠