新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 自学Cortex-M3(2):按键实验

自学Cortex-M3(2):按键实验

作者:时间:2012-07-04来源:网络收藏

有输出总会有输入,今天测试一下的功能,第一节已经说过了与GPIO端口相关的寄存器,这里不在重复,想要从端口读取数据,首先把FIODIR这个寄存器设置为输入,再从FIOPIN寄存器读取数据就可以了,这个寄存器具有读写功能。下面说一下这个的电路图,如下所示:

本文引用地址:http://www.eepw.com.cn/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 下一页

评论


相关推荐

技术专区

关闭