一种关于单片机定时器中断和数码管冲突问题的解决方案

2023-11-18

问题发现

我们会发现,同时存在定时器中断和数码管操作时,有时会导致数码管显示异常。

原因探究

在定时器中断函数中不要操作P2和P0,因为定时器(T)和主板(M)的时钟频率不一样。有可能导致M刚操作完P2,T又去操作P0,导致正确的P2和P0没有成对出现,会造成数码管重影、闪烁之类的“异步冲突”。

解决方案

在《计算机操作系统》课程中,我们采用信号量机制来协调这种“互斥”操作。但是单片机里面我们只需要在定时器中断里面操作标志变量K,在M中判断K的值根据K值不同做出不同的操作。这样操作P2和P0的操作就全在M里面进行,也能成对出现了,不会导致“异步冲突”。

示例

定时器中断函数中设置标志变量

M中判断标志变量

总结

这个问题一直困扰了我很久,之前有人给我讲过但是没说原因,导致我后面就忘了。后来又遇到这个问题就下定决心搞清楚。其实也是恰好我们的《计算机操作系统》课给了我一些启发。这告诫我在平时的学习过程中一定要多思考,多联系已学的知识。如有问题欢迎大家给我指正!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一种关于单片机定时器中断和数码管冲突问题的解决方案 的相关文章

随机推荐

  • 【读点论文】ViTGAN: Training GANs with Vision Transformers 将视觉transformer和gan结合起来

    ViTGAN Training GANs with Vision Transformers Abstract 最近 Vision Transformers vits 在图像识别方面表现出了具有竞争力的性能 需要较少的视觉特定的归纳偏差 在本
  • ubuntu中USB摄像头gstreamer方式图像采集、显示、录像及回放功能设计——(1)

    文章目录 背景 一 USB摄像头图像格式 1 安装v4l2 ctl库 2 找到挂载节点 3 图像格式分析 二 Gstreamer 简介 三 Gstreamer 命令行 1 显示MJPG格式 1280 720 30fps视频 2 显示YUV格
  • Android studio 查找所有字符串

    查找程序中所有直接使用的硬编码字符串 String 全局查找 Ctrl H 输入 u4e00 u9fa5 并打钩Regular Expression 正则表达式
  • 语音识别-3

    https zhuanlan zhihu com p 33464788 基于CTC的语音识别基础与实现 首先明确语音识别的任务是怎样的 输入input是音频wav文件 保存的一般是经过抽样量化编码之后数字信号 也就是每个样点的值 即我们经常
  • Python人工智能需要学什么?Python人工智能有什么用

    python人工智能是python开发中最火也是学习要求最高 薪资最高的方向 所以很多的小伙伴都想知道学习python人工智能要学一些什么 python人工智能有什么用 这篇文章会介绍python人工智能的全学习路线和作用 一起看看吧 一
  • 获取京东cookie简单暴力获取京东CK

    获取京东cookie简单暴力获取京东CK 具有时效性 太久没玩可能以失效 注意 用浏览器请使用隐身窗口 如果多个账号 一定不要点退出登录 直接关闭网页 清除浏览器cookie数据 隐身窗口无需这一步 重新进入网页登录下一个账号 退出会导致刚
  • SpringBoot通过@Cacheable实现redis缓存机制

    SpringBoot通过注解实现redis缓存机制 Cacheable 查询 CachePut 修改 CacheEvict 删除 下面展示一些 内联代码片 Cacheable 查询 An highlighted block key 这边以d
  • 转虚拟服务器要输入什么,虚拟主机转移到云服务器要注意哪些

    虚拟主机转移到云服务器要注意哪些 发布时间 2020 10 09 17 08 53 来源 亿速云 阅读 62 作者 Leah 栏目 云计算 虚拟主机转移到云服务器要注意哪些 针对这个问题 这篇文章详细介绍了相对应的分析和解答 希望可以帮助更
  • 【VUE】vue安装教程

    vue js环境搭建 1 安装node js 官网地址 https nodejs org en 最好安装最新版的node js 2 安装node js 注意 在安装Node js前 先cmd 命令提示符 运行 node v 查看是否已经有N
  • AD——绘制STC89C51单片机原理图

    AltiumDesigner绘制STC89C51单片机原理图
  • build VCL on android

    转自 http wiki videolan org AndroidCompile AndroidCompile This page is an introduction to the compilation of VLC for Andro
  • vue首屏优化

    先分析加载慢的原因 再做优化 1 首先安装webpack的可视化资源分析工具 命令行执行 npm i webpack bundle analyzer D 2 然后在webpack的dev开发模式配置中 引入插件 代码如下 const Bun
  • 微信小程序-input标签无法输入数据问题

    使用微信开发者工具学习时 input标签点击之后鼠标无法跳转 也无法输入数据 解决方案 直接单击键盘的 Tab键即可跳入输入框 鼠标未在输入框内 按一下Tab键也可跳入
  • Vue脚手架相关笔记(ref属性、props配置、mixin混入、scoped样式)

    关于不同版本的Vue 1 vue js 与vue runtime xxx js的区别 1 vue js是完整版的Wue 包含 核心功能 模板解析器 2 vue runtime xxx js是运行版的Vue 只包含 核心功能 没有模板解析器
  • Sysrv-hello挖矿病毒

    麻蛋我的服务器也中了这个挖矿病毒 先看一下网上能找到的文章吧 https developer aliyun com article 780758 讲了一大堆原理 你倒是给我解决办法啊 1 先杀了进程 sysrv network01 2 修改
  • H5打开新窗口与页面跳转的几种方法

    1 在本窗体打开一个新的页面 window location href URL 2 在一个新的窗口打开一个新的页面 window open URL 3 本窗口的页面被替换为一个新的页面URL 替换后不可以回退到上个页面 location r
  • 理光打印机出现sc542-01怎样解决?

    问题图 步骤一图文 补充 理光维修模式指令 107 03以下机型 143 通用 806182 03以上机型 注方法 1 清除键 黄色 点一次 107 停止键 红色键 按住3秒以上 2 依次按重置 RESET 806182 按住C不动3秒 就
  • CentOS7.5最小化安装之后的配置

    我是最小化安装的 安装了之后很多基本使用配置没有 接下来要做一些配置 如网络之类的 使系统可用 1 使命令分页显示 1页显示不不下 又不能上翻页 xxx more 2 查看系统安装了哪些软件包 rpm qa 3 配置网络 最小化安装之后 i
  • 听我一句劝,别去外包,干了3个月,技术退步明显...

    先说一下自己的情况 大专生 18年通过校招进入湖南某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • 一种关于单片机定时器中断和数码管冲突问题的解决方案

    问题发现 我们会发现 同时存在定时器中断和数码管操作时 有时会导致数码管显示异常 原因探究 在定时器中断函数中不要操作P2和P0 因为定时器 T 和主板 M 的时钟频率不一样 有可能导致M刚操作完P2 T又去操作P0 导致正确的P2和P0没