当前位置: 首页 > news >正文

printf影响单片机中断速度

printf是我们常用的调试程序的手段,在第一版程序中,经常会使用printf来验证程序是否工作正确。这样的调试手段应该在正式版的程序发布前注释掉或者删除。而且不当地使用printf也会带来某些功能性问题,例如,在某项目中,需要快速响应一个触发信号,在该触发信号到来时,对触发信号计数,并分别对不同的数字做出不同的反应,代码如下图所示:

void SIGTRIG_IRQHandler(void)
{//满洲里国峰电子科技//www.guofengdianzi.com//确保是否产生了EXTI Line中断if(EXTI_GetITStatus(SIGTRIG_EXTI_LINE) != RESET) {    TrigNum++;// just 4 channelsif(TrigNum>3)TrigNum=0;printf("num=%d \r\n", TrigNum);  //清除中断标志位EXTI_ClearITPendingBit(SIGTRIG_EXTI_LINE);     } 
}

在上述代码中,使用printf验证是否每次的触发信号均被正确捕捉,然而我们在测试中发现,这个printf影响了该中断函数的速度,这个触发信号的频率大约是200us,测试时发现响应动作的周期却远大于200us,经排查是printf引起,将其注释后,恢复正常。

void SIGTRIG_IRQHandler(void)
{//满洲里国峰电子科技//www.guofengdianzi.com  //确保是否产生了EXTI Line中断if(EXTI_GetITStatus(SIGTRIG_EXTI_LINE) != RESET) {    TrigNum++;// just 4 channelsif(TrigNum>3)TrigNum=0;//printf("num=%d \r\n", TrigNum);  //清除中断标志位EXTI_ClearITPendingBit(SIGTRIG_EXTI_LINE);     } 
}
http://www.lryc.cn/news/478813.html

相关文章:

  • JavaScript 23种经典设计模式简介
  • 位运算相关算法
  • 解决:无法在此设备上激活Windows因为无法连接到你的组织的激活服务器
  • 【Spring】——SpringBoot项目创建
  • 聊一聊:ChatGPT搜索引擎会取代谷歌和百度吗?
  • 分布式中常见的问题及其解决办法
  • HTML 基础标签——多媒体标签<img>、<object> 与 <embed>
  • word mathml 创建粗体字母快捷键
  • ROOT添加用户提示权限不够
  • 关于使用svgIcon 菜单折叠 显示文字情况
  • Python使用PDF相关组件案例详解
  • day53 图论章节刷题Part05(并查集理论基础、寻找存在的路径)
  • 鸿蒙next选择 Flutter 开发跨平台应用的原因
  • shodan6-7---清风
  • FTP、ISCSI、CHRONY、DNS、NFS、DOCKER、MARIADB、NGINX、PHP、CA各服务开启方法
  • 抢先体验AI领域的新宠儿:Llama3.1,部署实战探索!
  • HarmonyOS基础:鸿蒙系统组件导航Navigation
  • 【K8S问题系列】Kubernetes 中 Pod 无法通过 Service 名称访问服务的 DNS 解析失败【已解决】
  • 【下载工具】Internet Download Manager下载器介绍
  • 如何打开/关闭 GitLab 的版本检查功能?
  • java-web-day13-事务管理+spring aop
  • MySQL详细安装教程
  • 文件系统和日志管理
  • 【LeetCode】【算法】208. 实现 Trie (前缀树)
  • libaom 源码分析:帧间运动矢量预测
  • Android TextView自动换行文本显示不全解决
  • 【LeetCode】【算法】394. 字符串解码
  • 最新整理:Selenium自动化测试面试题
  • 外包干了2年,快要废了。。。
  • 乐尚代驾十订单支付seata、rabbitmq异步消息、redisson延迟队列