GPIO口中断例程_MK20DX128VLH5_K20系列

原创 2015年07月09日 18:28:19
/* cpu:MK20DX128VLH5  */

#include "MK20D5.h"
#include "system_MK20D5.h"

void LEDConfig(void);
void GPIOConfig(void);
void Delay_ms(unsigned int ms);
void InterruptGpioConfig(void);

int main(void)
{   
    LEDConfig();
    InterruptGpioConfig();  
    PTA->PSOR |= (1<<2);
    while(1)
    {
        Delay_ms(10);
        PTA->PTOR |= (1<<13);   //翻转PA13    
    }
}

void LEDConfig(void)    //PA2配置为输出,在中断例程中翻转
{
    SIM->SCGC5 |= SIM_SCGC5_PORTA_MASK;
    PORTA->PCR[2] &= ~PORT_PCR_MUX_MASK;
    PORTA->PCR[2] |= PORT_PCR_MUX(1);
    PTA->PDDR |= (1<<2);
    PTA->PCOR |= (1<<2);
}

//================================================
//  J2_1#: PA13, 主循环中输出周期波形
//================================================
void GPIOConfig(void)
{
    SIM->SCGC5 |= SIM_SCGC5_PORTA_MASK;
    PORTA->PCR[13] &= ~PORT_PCR_MUX_MASK;
    PORTA->PCR[13] |= PORT_PCR_MUX(1);
    PTA->PDDR |= (1<<13);
}

//================================================
//  J2_2#: PA12,配置为下降沿中断
//================================================
void InterruptGpioConfig(void)
{
    SIM->SCGC5 |= SIM_SCGC5_PORTA_MASK;
    PORTA->PCR[12] &= ~PORT_PCR_MUX_MASK;
    PORTA->PCR[12] |= PORT_PCR_MUX(1);
    PORTA->PCR[12] &= ~PORT_PCR_IRQC_MASK;
    PORTA->PCR[12] |= PORT_PCR_IRQC(0x0A); //配置为下降沿中断
    PTA->PDDR &= ~(1<<12); 
    NVIC_EnableIRQ(PORTA_IRQn);
}

void Delay_ms(unsigned int ms)
{
    unsigned int Val;
    Val = SystemCoreClock/1000/4*ms;
    while(--Val != 0);      
}    

void PORTA_IRQHandler(void)
{
    /*进中断后先清楚中断标志位,不然,可能会出问题 */
    PORTA->ISFR |= (1<<12);
    //  PORTA->PCR[12] |= PORT_PCR_ISF_MASK;  //仿真调试显示这一句和上面一句效果一样
    PTA->PTOR |= (1<<2); //翻转PA2 
}

STM32简单入门程序分析之GPIO,外部中断

首先来讲一讲GPIO的相关ch
  • oechoness
  • oechoness
  • 2014年06月13日 07:57
  • 2347

Linux gpio 按键中断学习

转自 http://blog.chinaunix.net/uid-14753126-id-2983036.html 先说明一下按键与S3C2440芯片的连接方式: KEY1 EINT8 GPG...
  • lqxandroid2012
  • lqxandroid2012
  • 2016年05月20日 17:11
  • 2015

TI CC2530基础实验(GPIO通用I/O中断操作——一个中断处理程序处理一个端口的多个中断)

有关CC2530的GPIO基本知识、普通GPIO操作有关寄存器的介绍、IAR Embedded Workbench IDE软件使用:TI CC2530基础实验(普通GPIO操作——点亮led灯) 有...
  • Thanksgining
  • Thanksgining
  • 2014年12月26日 17:11
  • 2496

嵌入式Linux下使用GPIO中断功能

ByToradex秦海 1). 简介 GPIO应用是嵌入式设备最基本的应用之一, 本文就基于Embedded Linux系统演示开发GPIO中断以及输出相关的基本应用示例. 本文所采...
  • toradexsh
  • toradexsh
  • 2017年03月03日 17:00
  • 648

14 orangepi 内核里控制IO口

在linux内核里mmu已经启用,不能直接访问物理地址.必须要把物理地址映射到一个虚拟地址上,然后通过该虚拟地址来访问原物理地址. 物理地址就是硬件上安排好的地址,如配置寄存器的地址.void *i...
  • jklinux
  • jklinux
  • 2017年06月06日 10:47
  • 1024

如何设置通过PMU的gpio来唤醒系统

原文出处:http://blog.csdn.net/tonywgx/article/details/12120913 假设你要设置pmu(axp209)  的gpio3来唤醒系统。 1、修...
  • YanLai20
  • YanLai20
  • 2015年06月30日 22:02
  • 320

Am335x 下GPIO控制实例

看了这么多的资料,现在决定上手了,下面将用两种方式来实现对GPIO 117的控制 1,用直接添加到内核的方式,实现MISC的驱动(misc_register) 2,用手工安装的方式,实现简单字符设备驱...
  • hudaweikevin
  • hudaweikevin
  • 2013年11月19日 16:44
  • 7203

linux字符驱动之poll机制GPIO状态监测驱动

应用背景: 1、A20全志方案; 2、Linux系统; 3、两个GPIO口,一个用于检测门的状态(门开或门关),一个用于检测开门按钮是否按下; 4、生成两个字符设备:/dev/doorstate和/d...
  • lindonghai
  • lindonghai
  • 2016年06月22日 10:07
  • 1260

Linux无需开发底层驱动,从应用层获取GPIO中断

写在前头 *.版权声明:本篇文章为原创,可随意转载,转载请注明出处,谢谢!另我创建一个QQ群82642304,欢迎加入! 获取中断 GPIO中断在嵌入式开发中经常用到,到了linux下,处...
  • baicaiaichibaicai
  • baicaiaichibaicai
  • 2016年04月19日 09:20
  • 6166

GPIO中断使用小结

GPIO 中断使用小结 最近在开发一个跟GPIO中断相关的功能,发现还是有很多函数比较有意思,现在总结一下: 1. 调用gpio_is_valid(int gpio_num)判断该GPIO是否有效...
  • zhanghuan_xa
  • zhanghuan_xa
  • 2015年09月08日 16:52
  • 5559
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GPIO口中断例程_MK20DX128VLH5_K20系列
举报原因:
原因补充:

(最多只允许输入30个字)