笔记:(三)INT外部中断驱动

Author:家有仙妻谢掌柜
Date:2021/2/26
本文已于2021/3/1更新完毕。

本文用到的数据手册连接在这里

这里只分析中断的外部引脚中断,至于其他的,如:定时器中断会在Timer篇章中详解,ADC中断会在ADC篇章中详解等等
关于合泰的中断服务函数写法,在IDE中一定是这样的,固定格式。
如:DEFINE_ISR(INT1ISR,INT1VECTOR)
1.函数名字DEFINE_ISR:    无论是INT0还是INT1又或者是定时器中断,他们的中断服务函数名字都是DEFINE_ISR,这是编译器识别的入口,其他的不行。
2.第一个参数INT1ISR:  针对不同的中断你可以命名独立的函数名字,如:INT1ISR,这就是INT1的标识,这个标识是你自己定义的可以随便写的。
3.第二个参数INT1VECTOR:   中断的向量这里在头文件中定义了,#define INT1VECTOR   0x08

中断向量表如下图:
图中红色方框标识的就是INT1的中断向量,其中箭头标识的寄存器INT1F是请求标志位,左上角的黑色三角,是文档说明,它说明了该请求标志位寄存器的值表示的是可以自动复位的,就是可以自动清零的,

//因此我们不能在中断服务子程序中写上
DEFINE_ISR(INT1ISR,INT1VECTOR)
{if(_int1f){//想要执行的事情}_int1f = 0;
}
//而是要这样写
DEFINE_ISR(INT1ISR,INT1VECTOR)
{//想要执行的事情_int1f = 0;
}

接下来,走一波完整的配置,实现的功能是对黑白条进行计数,中断程序中是不要写太多的东西的,一般都是写一些这样的东西,当中断发生,更新标位置,或者当中断发生 ,对某一个值进行计数,或者中断发生,改变某引脚电平等等,执行的任务越少越好。

#include "include.h"
/******************************************************************************** fuction   IRONInit    * brief * param 无                                                             * return  无*******************************************************************************/
void INT1PinInit(void)
{_pas17 = 0;_pas16 = 0;gpioInput(INT1Pin);            //PA7gpioPullUpEnable(INT1Pin); //PA7_integ = 0x08;            //0b00001000_int1e = 1;            //外部中断1中断使能_int1f = 0;             //清外部中断1标志位 _emi = 1;              //使能总中断
}
/******************************************************************************** fuction   INT1ISR * brief INT1中断函数* param * return    无*******************************************************************************/
DEFINE_ISR(INT1ISR,INT1VECTOR)
{//中断中尽量执行比较简单的任务,这里只对某一个值进行计数Cnt++;   _int1f = 0;
}

INT1PinInit函数中,使用到的寄存器分析

1、边沿触发寄存器选择


我在这里使用的是下降沿触发中断,

2、中断请求,开启中断配置


这里打开INT1控制位寄存器故而让_int1e = 1;
这里打开总中断控制位 故而让_emi = 1;
是否有事件请求,如果有的话是要_int1f = 1;但是置1之后,会进入到中断子程序内,因此我们要设置为0,当有中断来的时候,他会自动设置为1,故而_int1f = 0;

3、中断引脚复用配置


这里要注意的是引脚复用功能,PA7要作为中断,必须开启引脚复用功能,只需设置对应的寄存器即可。 _pas17 = 0; _pas16 = 0;这里选择是00。

#ifndef _IR_H
#define _IR_H#include "BH66F2652.h"#define INT1Pin        PA7 //计数 外部中断1
#define INT1VECTOR  0x08extern void INT1PinInit(void);#endif
/*--------------------------------END THE FILE-----------------------------------*/

笔记:合泰单片机BH66F2652开发(三)INT相关推荐

  1. 合泰单片机BH66F2652开发笔记链接

    Author:家有仙妻谢掌柜 Date:2021/2/26 预计2021/2/28前更新完毕 笔记:合泰单片机BH66F2652开发(一)HT IDE安装使用 笔记:合泰单片机BH66F2652开发( ...

  2. 笔记:合泰单片机BH66F2652开发(四)TIMER

    笔记:(四)TIMER定时器驱动 Author:家有仙妻谢掌柜 Date:2021/2/26 本文已于2021/3/1更新完毕. 本文用到的数据手册连接在这里 定时器中断,基础中断为5ms中断一次,在 ...

  3. HT32合泰单片机开发环境搭建和配置教程

    HT32合泰(Holtek)单片机开发环境搭建安装教程 前言 最近在准备合泰杯的比赛,在看合泰官方的PPT和数据手册学习,顺便做个合泰单片机的开发环境搭建教程. 合泰杯比赛发放的开发板是ESK32-3 ...

  4. 合泰杯 | 合泰单片机入门 环境搭建安装(一)

    最近参加福建省的合泰杯比赛,第一次接触合泰单片机,一开始学习的是51 和 32 ,虽然各类单片机的操作都万变不离其中,但是相对于51和32 的资料,合泰单片机的资料对于新手来说就不那么友好了.所以后面 ...

  5. 合泰杯——合泰单片机工程之点亮LED

    合泰杯--合泰单片机工程1之点亮LED 前言 一.安装HT-3000IDE 二.新建一个工程 二.编写代码 总结 前言 因为团队中很多成员参加了下个学期合泰杯的比赛,所以想利用寒假的时间来整理一套例程 ...

  6. 51单片机学习笔记1 简介及开发环境

    51单片机学习笔记1 简介及开发环境 一.51单片机 1. STC89C52单片机简介 2. 命名规则 3. 封装 (1)PDIP (2)LQFP (3)PLCC (4)PQFP 二.STC8051结 ...

  7. AD练习笔记 51单片机最小系统开发板

    个人练习笔记,如果存在某些漏洞,望大佬们指点. 这是一版51单片机的开发板,除去51的最小系统,还另外添加了蜂鸣器与流水灯电路,使得整体更适合于多种设计,下面是简单介绍       选用DC母座作为充 ...

  8. 合泰杯 | 合泰单片机入门 定时器详解(三)

    说在前面: 好久没有更新是因为一直在忙,想必关注这个系列博文的都是参加合泰公司比赛的小伙伴,后台有好些小伙伴给我私我什么时候更新,这里先道个歉,不好意思久等了.人啊,知道的越多就越迷茫,所以做一个&q ...

  9. 合泰单片机市场占有率_holtek单片机图文全面详解

    电子产品项目中对单片机的选型,可谓仁者见仁智者见智.合泰单片机价格适中,种类也比较齐全.下面就为大家全面介绍下holtek的单片机. holtek单片机是由盛群半导体设计开发,盛群半导体为国内专业微控 ...

最新文章

  1. .NET遇上Docker - 使用Docker Compose组织Ngnix和.NETCore运行
  2. test函数java,js中test()函数在正则中使用
  3. jdbc和mysql编程_MySql数据库与JDBC编程三
  4. Linux---文件操作
  5. java翻译数字串并打印_如何使用Java翻译字符串?
  6. nginx相关概念——正向代理和反向代理
  7. 一键修改电脑硬件信息_不想使用iPhone锁屏键?一键锁屏快捷指令来了
  8. 【转载】数据库建模工具
  9. VBA实现EXCEL随机本地随机刷题
  10. 候鸟算法matlab实现
  11. 全息投影图片合成-(matlab)(将4个视角图合成为一张)
  12. 详解oracle多种表连接方式,详解Oracle多种表连接方式
  13. JavaScript 实现textarea限制输入字数, 输入框字数实时统计更新,输入框实时字数计算移动端bug解决...
  14. 万字好文!数据治理体系与能力提升
  15. 【素描基础】大师素描及素描抽象明…
  16. The user name or passphrase you entered is not correct for Mac Xcode
  17. 萤石春季发布会:4+N产品体系再升级EZVIZ Connect连接智能生活
  18. 数据挖掘:网络挖掘技术——微博文本特征提取
  19. matlab 4d double,c – 对于 4D阵列MatLab造成巨大的性能损失?
  20. switchHosts启动报错: bad data file.. :( 问题解决记录(笔记)

热门文章

  1. android treble,Android Treble 简单介绍.ppt
  2. cpp学习笔记:模板
  3. 计算机什么ups又称在线式ups,UPS与逆变器各有什么种类?
  4. TMC2590-TA:步进驱控芯片
  5. Window VMware MAC OS 安装
  6. 编程语言——标记语言——脚本语言之间的比较
  7. php使用fpm fcgi模式,为所有PHP模式安装Ioncube Loader(CLI,CGI,FCGI和FPM)在Debian Wheezy...
  8. 计算机路由器工作原理,路由器工作原理
  9. 骁龙820A:座舱域控制器介绍
  10. H5请求服务端发送POST请求之预请求-OPTIONS