嵌入式单片机,ATmega328P,外部中断INT0,INT1,INT2,中断标志位介绍
body, table{font-family: 微软雅黑; font-size: 13.5pt}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}
| INT0 | INT1 | INT2 | 说明 | |
| 上升沿触发 | Yes | Yes | Yes(异步) | |
| 下降沿触发 | Yes | Yes | Yes(异步) | |
| 任意电平变化触发 | Yes | Yes | —— | |
| 低电平触发 | Yes | Yes | —— | 无中断标志 |
与外部中断相关的寄存器和标志位
| 位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| $35($0055) | SM2 | SE | SM1 | SM0 | ISC11 | ISC10 | ISC01 | ISC00 |
| 读/写 | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| 初始化值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ISCn1 | ISCn0 | 中断触发方式 |
| 0 | 0 | INTn的低电平产生一个中断请求 |
| 0 | 1 | INTn的下降沿和上升沿都产生一个中断请求 |
| 1 | 0 | INTn的下降沿产生一个中断请求 |
| 1 | 1 | INTn的上升沿产生一个中断请求 |
| 位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| $34($0054) | JTD | ISC2 | —— | JTRF | WDRF | BORF | EXTPF | PORF |
| 读/写 | R/W | R/W | R | R/W | R/W | R/W | R/W | R/W |
| 初始化值 | 0 | 0 | 0 | 复位标志 | 复位标志 | 复位标志 | 复位标志 | 复位标志 |
| ISC2 | 中断触发方式 |
| 0 | INT2的下降沿产生一个异步中断请求 |
| 1 | INT2的上升沿产生一个异步中断请求 |
| 位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| $3B($005B) | INT1 | INT0 | INT2 | —— | —— | —— | IVSEL | IVCE |
| 读/写 | R/W | R/W | R/W | R | R | R | R/W | R/W |
| 初始化值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 0x1D(0x3D) | - | - | - | - | - | - | INT1 | INT0 |
| 读/写 | R | R | R | R | R | R | R | R |
| 初始值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| $3A($005A) | INTF1 | INTF0 | INTF2 | —— | —— | —— | —— | —— |
| 读/写 | R/W | R/W | R/W | R | R | R | R | R |
| 初始化值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
//针对ATmega328P,叫做外部中断标志寄存器
| 位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 0x1C(0x3C) | - | - | - | - | - | - | INTF1 | INTF0 |
| 读/写 | R | R | R | R | R | R | R/W | R/W |
| 初始化值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 在系统程序的初始化部分中对外部中断进行设置时(定义或改变触发方式),应先将GICR寄存器中该中断允许位清零,禁止MCU响应该中断后再设置ISCn位(中断触发方式)。 在开放中断允许前,一般应通过向GIFR寄存器中的中断标志位INTFn写入逻辑“1”,将该中断的中断标志位清零,然后开放中断。这样可以防止在改变ISCn的过程中误触发中断。 |
| GICR|=0xC0; //允许INT0、INT1中断 1100 0000 MCUCR=0x0A; //INT0、INT1下降沿触发 0000 1010 GIFR=0xC0; //清除INT0、INT1中断标志位 1100 0000 //全局中断允许; |
嵌入式单片机,ATmega328P,外部中断INT0,INT1,INT2,中断标志位介绍的更多相关文章
- 嵌入式单片机STM32应用技术(课本)
目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...
- 51单片机外部中断INT0实例(汇编程序)
;普中51开发板 ;单片机的P3.2(INT0)引脚与按键K3脚连接 ;用汇编语言实现:按一次K1外部中断INT0响应一次,LED显示值加1(十进制), ;前提是共阴数码LED第一位,需要设定,由P0 ...
- AVR 嵌入式单片机芯片的中断系统介绍
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 中断源记录 INT0 INT1
中断源记录 INT0 INT1 用到一个单片机 使用的 P3.1 P3.3 作为唤醒口,后来发一 P3.1 和 P3.3 使用的同一个中断 INT1,这个尴尬了,只能两选 一. 查看规格书,还好 P3 ...
- dsp28377控制DM9000收发数据——第三版程序,通过外部引脚触发来实现中断接受数据,优化掉帧现象
//-------------------------------------------------------------------------------------------- - //D ...
- 嵌入式单片机之stm32串口你懂了多少!!
stm32作为现在嵌入式物联网单片机行业中经常要用多的技术,相信大家都有所接触,今天这篇就给大家详细的分析下有关于stm32的出口,还不是很清楚的朋友要注意看看了哦,在最后还会为大家分享有些关于stm ...
- 关于使用单片机读取外部电压ADC阻抗匹配的问题
单片机的基准电压一般为3.3V,如果外部信号超过了AD测量范围,可以采用电阻分压的方法,但是要注意阻抗匹配问题.比如,SMT32的模数输入阻抗约为10K,如果外接的分压电阻无法远小于该阻值,则会因为信 ...
- STM32嵌入式开发学习笔记(五):中断
我们过去了解了用循环实现延时,或用系统滴答计时器实现延时,但这两种方法都有一种问题:会阻塞处理器的运行.下面我们学习一种不阻塞处理器运行其他事件的功能:时钟中断. 所谓中断,就是让处理器放下手头的事情 ...
- 单片机C语言中标志位的经典应用
/* 本例程是C语言的位域操作示例 这里为什么位域结构体与联合体一起使用? -->因为这样定义后,即可以单独使用标志位 也可同时使用整个字节数据 主要应用:单片机C语言 好处:用标志位可以节省R ...
随机推荐
- Vue学习——使用vue-cli搭建一个简单的本地vue项目
前提 安装好node.js.npm.vue-cli.为什么要先安装这些,建议查看https://www.cnblogs.com/jixue/p/10673875.html,这个对于vue-cli理解很 ...
- elasticsearch-mapping字段重要属性
https://blog.csdn.net/gongpulin/article/details/78705205
- Linux 搭建DNS
Linux 搭建DNS 使用yum源安装 yum -y install bind* 修改主配置文件 [root@localhost ~]# cp /etc/named.conf /etc/named. ...
- pythong+selenium自动创建随笔
这里是发帖区域,赶紧写下你的思绪
- Vue-admin工作整理(十三):Vuex-严格模式
严格模式:开发过程中对规范的要求,定义方式为在store实例初始化的时候将strict设置为true,这样的话就是开启了严格模式.在这种情况下,如果要直接修改state里面的值,那就会报问题.那么也可 ...
- OceanBase迁移服务:向分布式架构升级的直接路径
2019年1月4日,OceanBase迁移服务解决方案在ATEC城市峰会中正式发布.蚂蚁金服资深技术专家师文汇和技术专家韩谷悦共同分享了OceanBase迁移服务的重要特性和业务实践. 蚂蚁数据库架构 ...
- Mysql 索引之B+tree
InnoDB使用的是聚簇索引,将主键组织到一棵B+树中,而行数据就储存在叶子节点上,若使用"where id = 14"这样的条件查找主键,则按照B+树的检索算法即可查找到对应的叶 ...
- 射频(SX1278)
射频是什么? 官方说法:RF,Radio Frequency. (不懂的人,看了还是不懂,不过对于物联网行业的开发工程师.产品经理和项目经理,还是有需要对射频有个基础了解的.) 燚智能解读: 两个人, ...
- 2018-2019-2 网络对抗技术 20165303 Exp1 PC平台逆向破解(BOF实验)
1.实践目的 本次实践的对象是一个名为pwn1的linux可执行文件. 三个实践内容如下: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个 ...
- HBase Block Cache(块缓存)
Block Cache HBase提供了两种不同的BlockCache实现,用于缓存从HDFS读出的数据.这两种分别为: 默认的,存在于堆内存的(on-heap)LruBlockCache 存在堆外内 ...