关于STC8 用定时器中断方式消抖误重复执行2次的原因

终于搞清楚了!
原来:我项目需用到STC8的INT0/INT1(2个脚都是类似插拔电,而非按键类型),本来完全可简简单单都用T0查询方式消抖(无需开ET0!其实软件消抖多几十ms都很可靠的了)! 但我想试试T0中断方式消抖的,结果就是中断方式消抖只能用于其中1个中断,而那另1个中断不能再用T0中断或查询方式消抖,只能软件消抖,怎么试都只能这样(项目也确实有点特殊,需判2个中断脚4种状态且其中2种复位并标记刷新EEPR,LED不同指示等很多需要判断区别的东西);
原来:只要其中1个用了T0,重载并TR0=1启动过,不管有没有启动过ET0中断,都会产生一个溢出标志TF0=1,而有T0中断服务函数的话,就会进去响应,只有响应了T0中断TF0才硬件清0,当然也可软件查询清0。但我这个T0中断服务函数是只是专门处理其中一个中断事件的,而这个T0中断服务函数里面的判断条件很难于满足二个中断所需各种状态的判断和处理,所以就乱了;
所以:之前测试很久反复出现复位2次,误复位或造成LED指示混乱或EEPR记录混乱等莫名其妙问题!到处清0或开关中断,以及改优先权都无效!
成果:这次虽然千辛万苦,但项目特殊仍未用上T0中断方式消抖!但至少搞清楚了T0中断方式消抖的用法及有关具体问题!其他项目必要/合适时再用! 当然具体情况得具体分析!
后话:一直说尽量少用软延时,特别是中断服务函数里面,效率才高。其实也无需好高骛远,物尽其用且简单可靠才是王道第一!效率问题永远后面再说,就如本案简简单单的2个中断事件的消抖处理,还非要都用定时器消抖的话,都用查询方式够了,想用中断方式的话,尽管去试吧!得不偿失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/6049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

golang 基础知识细节回顾

之前学习golang的速度过于快,部分内容有点囫囵吞枣的感觉,写gorm过程中有很多违反我常识的地方,我通过复习去修正了我之前认知错误和遗漏的地方。 itoa itoa自增的作用在编辑error code时候作用很大,之前编辑springboot的error c…

Stream流入门,Stream流创建

1、什么是Stream? *也叫Stream流,是JDK8开始新增的一套API,可以用于操作集合或者数组的数据。 *优势: Stream流大量结合了Lambda的语法风格来编程,提供了一种更加强大也更加简单的操作集合或者数组中的数据&#xf…

idea常用知识点随记

idea常用知识点随记 1. 打开idea隐藏的commit窗口2. idea中拉取Git分支代码3. idea提示代码报错,项目编译没有报错4. idea中实体类自动生成序列号5. idea隐藏当前分支未commit代码6. idea拉取新建分支的方法 1. 打开idea隐藏的commit窗口 idea左上角File→Settings…

前沿科技应用:AIGC技术的广泛渗透

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

『大模型笔记』MetaGPT: 多智能体框架:首家人工智能软件公司,走向自然语言编程

MetaGPT: 多智能体框架:首家人工智能软件公司,走向自然语言编程! 文章目录 一. MetaGPT: 多智能体框架二. MetaGPT-调研员-例子『大模型笔记』AI 智能体(Agent)在推理(Reasoning)、规划(Planning)与工具调度(Tool Calling)方面的研究:综合调查!一. MetaGPT: 多智能体框架 …

10、Python:字典类型(Dictionary)

字典的定义 在Python中,字典是一种可变容器模型,且可存储任意类型对象。字典的每个元素都是一个键值对。键必须是唯一的,而值则不必。 # 示例:创建一个字典 my_dict {name: Alice, age: 25, city: New York}常见运算操作 字典…

Python 正则表达式1 函数基础

正则表达式主要函数 注:表达式指正则表达式,字符串指待处理文本。 函数名称概要re.match()匹配检查字符串是否符合表达式,返回Match对象re.search()搜索搜索字符串是否包含表达式,返回Match对象re.findall()查询查询字符串所有符…

基于alpha shapes的边缘点提取(matlab)

1、原理介绍 由Edelsbrunner H提出的alpha shapes算法是一种简单、有效的快速提取边界点算法。其克服了点云边界点形状影响的缺点,可快速准确提取边界点。如下图所示,对于任意形状的平面点云,若一个半径为a的圆,绕其进行滚动&…

LSTM-KDE的长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)

LSTM-KDE的长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab) 目录 LSTM-KDE的长短期记忆神经网络结合核密度估计多变量回归区间预测(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.LSTM-KDE的长短期…

Flutter笔记:Widgets Easier组件库(5)使用加减器

Flutter笔记 Widgets Easier组件库(5):使用加减器 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress…

机器学习:深入解析SVM的核心概念【三、核函数】

核函数 **问题一:为什么说是有限维就一定存在高维空间可分呢?**原始空间与特征空间为什么映射到高维空间可以实现可分核函数的作用 **问题二:最终怎么得到函数**从对偶问题到决策函数的步骤:结论 **问题三:为什么说特征…

nginx--第三方模块安装上传下载服务

第三方模块安装 准备 cd /usr/local/src/ yum install git -y git clone https://github.com/openresty/echo-nginx-module.git cd nginx-1.24.0 yum -y install perl-devel perl-ExtUtils-Embed zlib-devel gcc-c libtool openssl openssl-devel 编译安装 ./configure \--p…

ZooKeeper知识点总结及分布式锁实现

最初接触ZooKeeper是之前的一个公司的微服务项目中,涉及到Dubbo和ZooKeeper,ZooKeeper作为微服务的注册和配置中心。好了,开始介绍ZooKeeper了。 目录 1.ZooKeeper的基本概念 2.ZooKeeper的节点(ZNode) 3. ZooKeep…

机器学习之基于Tensorflow(LSTM)进行多变量时间序列预测股价

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 项目简介:机器学习之基于TensorFlow(LSTM)进行多变量时间序列预测股价 一、项目…

Python量化炒股的获取数据函数—get_fundamentals_continuously()

Python量化炒股的获取数据函数—get_fundamentals_continuously() get_fundamentals()函数只能用于查询某一交易日的股票财务数据信息,如果要查询多个交易日的股票财务数据信息,就要使用get_fundamentals_continuously()函数,语法格式如下&a…

Django数据库创建存储及管理

一、什么是ORM Django的ORM(Object-Relational Mapping)是Django框架中一个非常重要的组件。ORM可以让开发者以面向对象的方式操作数据库,而不需要直接编写SQL语句。 具体来说,Django ORM提供了以下功能: 模型定义:开发者可以在Django应用中定义Python类来表示数据库表,这些…

tensorflow报错

参考 TensorFlow binary is optimized to use available CPU instructions in performance-critical operations._this tensorflow binary is optimized to use availab-CSDN博客 解决Python中cuBLAS插件无法注册问题_unable to register cudnn factory: attempting to re-CS…

45. UE5 RPG 使用元属性(Meta Attributes)以及使用Set by Caller修改伤害

在RPG游戏中,我们是不会直接修改生命值的属性,是因为在修改角色属性时,需要获取角色的属性并进行复杂的计算,所以,我们正常情况下使用元属性(Meta Attributes)作为计算的中间的媒。在服务器上先…

【讲解下如何解决一些常见的 Composer 错误】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

Apache Dubbo知识点表格总结

Dubbo是一个高性能的Java RPC框架,它提供了一系列的功能来支持分布式系统的开发。通常用于微服务之间的服务调用,顺便提一下也是用于微服务之间调用的OpenFeign,OpenFeign是Spring Cloud体系中的一个声明式HTTP客户端,用于简化HTT…