我自己学习ATMEL ARM也有两个星期了,自己规划了尽量以后能保持一个星期写一篇关于ATMEL ARM单片机的学习或者应用博文。大家的阅读与交流是我最大的动力。
今天我们一起来学习EXTINT,在学习这节内容是可以查看数据手册看到SAMD21是不支持外部中断的,只支持事件触发。


关于中断与事件,下面有比较详细的解释:

好,开始本节的编程:
1:新建工程(参考第一节 —新建工程),直到下面的界面

2:向导界面 Project项选择本工程,并添加本例程需要的ASF模块

3:添加以下测试代码

#include <asf.h>void Board_init(void);
void configure_extint_channel(void);
void configure_extint_callbacks(void);
void extint_detection_callback(void);void Board_init(void)
{struct port_config pin_conf;port_get_config_defaults(&pin_conf);/* Configure LEDs as outputs, turn them off */pin_conf.direction  = PORT_PIN_DIR_OUTPUT;port_pin_set_config(PIN_PA00, &pin_conf);port_pin_set_output_level(PIN_PA00, false);/* Set buttons as inputs */pin_conf.direction  = PORT_PIN_DIR_INPUT;pin_conf.input_pull = PORT_PIN_PULL_UP;port_pin_set_config(PIN_PA15, &pin_conf);}//! [setup]
void configure_extint_channel(void)
{//! [setup_1]struct extint_chan_conf config_extint_chan;//! [setup_1]//! [setup_2]extint_chan_get_config_defaults(&config_extint_chan);//! [setup_2]//! [setup_3]config_extint_chan.gpio_pin           = PIN_PA15A_EIC_EXTINT15;config_extint_chan.gpio_pin_mux       = MUX_PA15A_EIC_EXTINT15;config_extint_chan.gpio_pin_pull      = EXTINT_PULL_UP;config_extint_chan.detection_criteria = EXTINT_DETECT_BOTH;//! [setup_3]//! [setup_4]extint_chan_set_config(15, &config_extint_chan);//! [setup_4]
}void configure_extint_callbacks(void)
{//! [setup_5]extint_register_callback(extint_detection_callback,15,EXTINT_CALLBACK_TYPE_DETECT);//! [setup_5]//! [setup_6]extint_chan_enable_callback(15,EXTINT_CALLBACK_TYPE_DETECT);//! [setup_6]
}//! [setup_7]
void extint_detection_callback(void)
{bool pin_state = port_pin_get_input_level(PIN_PA15);port_pin_set_output_level(PIN_PA00, pin_state);
}int main (void)
{system_init();Board_init();configure_extint_channel();configure_extint_callbacks();system_interrupt_enable_global();/* Insert application code here, after the board has been initialized. */while (true){}
}

4:编译下载即可以测试效果,想看到不同的测试效果可以改变
void configure_extint_channel(void)函数
config_extint_chan.detection_criteria = EXTINT_DETECT_BOTH;这个项的值。
此值有以下可选:
/**
* \brief External interrupt edge detection configuration enum.
*
* Enum for the possible signal edge detection modes of the External
* Interrupt Controller module.
*/
enum extint_detect {
/** No edge detection. Not allowed as a NMI detection mode on some
* devices. */
EXTINT_DETECT_NONE = 0,
/* Detect rising signal edges /
EXTINT_DETECT_RISING = 1,
/* Detect falling signal edges /
EXTINT_DETECT_FALLING = 2,
/* Detect both signal edges /
EXTINT_DETECT_BOTH = 3,
/* Detect high signal levels /
EXTINT_DETECT_HIGH = 4,
/* Detect low signal levels /
EXTINT_DETECT_LOW = 5,
};

本次文章到此结束,有任何异议或者疑问欢迎留言讨论!!!

Atmel Studio-SAM单片机开发 ---EXTINT相关推荐

  1. 使用Atmel Studio开发Arduino的ATmega328P单片机

    摘要:我们知道Arduino开发板常用的芯片是Atmel公司生产的AVR微控制器系列.最常见的是ATmega328P,被广泛用于Arduino Uno开发板.其他常用的AVR芯片包括ATmega256 ...

  2. Atmel Studio-SAM单片机开发 ---新建工程

    我早前就接触过Atmel的AVR单片机,我相信很多朋友也是这样.我记得在08年左右的时候atmel非常牛逼的AVR单片出现很不利于市场的供货问题, 让很多对他亲昵的朋友都向别人投怀送抱.好,那我们接下 ...

  3. Atmel Studio 7新建AVR单片机工程

    Atmel Studio 7新建AVR单片机工程 这篇文章用来演示如何Atmel Studio 7开发环境新建单片机工程 (30条消息) Atmel Studio 7新建AVR单片机工程_weixin ...

  4. 基于Atmel 51单片机开发平台和自动控制原理的数字电压表系统

    基于Atmel 51单片机开发平台和自动控制原理的数字电压表系统 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加 ...

  5. Atmel Studio 开发 atmega -- Pro Micro

    IDE开发环境: Atmel Studio 7.0 Target: Pro Micro atmega32u4 烧写工具: USBasp 烧写软件: F:\ardunio\as\avrdudess_20 ...

  6. AVRWARE++开发笔记8:Atmel Studio去除拼写检查

         这篇日志插入1个Atmel Studio的使用技巧. Atmel Studio安装完毕后,对中文支持不好,会出现如下现象,它对中文予以错误标识,表明拼写错误.     可以通过如下步骤,去除 ...

  7. Atmel Studio 6使用

    https://www.jb51.net/softs/556230.html Atmel Studio6也叫Avr Studio 6,是一款由Atmel公司开发的免费.集成化开发环境(IDE),可用来 ...

  8. 嵌入式开发要难于单片机开发?

    关注.星标公众号,直达精彩内容 ID:技术让梦想更伟大 来源:网络素材 单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈本 ...

  9. 分享第一次接触Atmel AVR微控制器开发板

    本人从事电子行业已有好几个年头,之前做过手机的开发.做过物联网芯片的技术支持,不能说对电子行业精通,也算马马虎虎有些见识了解,电子产业,目前硬件性能过胜是众所周知的事,好比在大家都比较熟知的单片机领域 ...

最新文章

  1. 复杂基因组测序技术研究进展
  2. torch拼接合并 cat优化记录
  3. ubuntu开机启动管理
  4. 虚拟化(4)_离线克隆与在线克隆
  5. Android开发之虹软人脸识别活体检测基本步骤
  6. 数据结构之图的遍历:广度优先遍历(BFS)
  7. 随机数,随机整数,向上向下取整
  8. boost 获取时间
  9. C#之double内存
  10. 一篇文章带你详解 HTTP 协议(网络协议篇一)
  11. 计算机机房空调设计规范,计算机机房空调设计规范
  12. 【STM32F407F429H7的DSP教程】第34章 滤波器基础知识
  13. IE浏览器兼容性问题!(按alt+x+b不弹出兼容性窗口)
  14. 知客CRM成功客户专访----厦门英斯捷
  15. win7设置文件夹共享 win7共享文件夹
  16. C/C++牛客网刷题练习之翻转链表篇
  17. Android11 图片裁剪问题
  18. 4、基于XML的AOP配置
  19. 实战版 天猫精灵接入指南(AliGenie接入)
  20. 成熟的项目架构设计是什么样的?

热门文章

  1. linux编译器警告变成错误,警告就是错误
  2. 微信公众平台为什么会火
  3. 为什么上传文件的表单里要加个属性enctype
  4. chrome浏览器字体小于12px的解决方式
  5. 给孩子取名时的重点分析
  6. itextpdf7 使用之 html 转 pdf 页眉页脚带图片
  7. 饿了不能吃的11种食品
  8. WKwebview 白屏问题——(WebApp/HybirdApp)
  9. kafka-go源码解析一(Dialer)
  10. 微信小程序(一)_APPID_的作用