业务实现比较简单,具体看注释。

#include "pluseCheck.h"
#include "gpio.h"
unsigned long totalCNt;         //总的脉冲计数器
unsigned long pluseCNt;             //占空比大约为50%的脉冲计数器
/*** * 根据脉冲的周期设置调用周期* 最好是放在定时器中断中
*/
void checkPlusePin(void)
{static char pinSta=0;static char isdutyCycleOK=0;static unsigned long widthTmCnt=0;     //高电平时间计数器static unsigned long negWidthTmCnt=0;        //低电平时间计数器static unsigned long LEDflashTmCnt=0;        //LED闪烁时间计数器static unsigned long LEDflashTm=0;             //LED闪烁时间float dutyCycle;if(cmt_spi3_gpio3_read()){if(pinSta == 0){widthTmCnt = 0;}if(widthTmCnt < 0xffffffff)widthTmCnt++;pinSta = 1;}else{if(pinSta == 1){dutyCycle = (float)widthTmCnt/(negWidthTmCnt + widthTmCnt);if( (dutyCycle > 0.45) && (dutyCycle < 0.55) ){pluseCNt ++;}else{}totalCNt ++;if(totalCNt == 1000){if(pluseCNt > 700){isdutyCycleOK = 1;LEDflashTm = totalCNt - pluseCNt;      }else{isdutyCycleOK = 0;}pluseCNt = 0;totalCNt = 0;}negWidthTmCnt = 0;}if(negWidthTmCnt < 0xffffffff)negWidthTmCnt ++;pinSta = 0;}//根据丢包率控制LED的开关if(isdutyCycleOK){LEDflashTmCnt++;//根据丢包率的情况控制闪烁的时间if(LEDflashTmCnt >= LEDflashTm*5){LEDflashTmCnt = 0;LED1_Toggle();}}else{LEDflashTmCnt = 0;LED1_OFF();}
}

C语言那些事之脉冲丢包率检测相关推荐

  1. 速率、带宽、吞吐量、丢包率

    一.首先对这几个概念打个不太准确的比方: 速率->你有一台车,车能跑多快,也就是比特速率,他和信号编码,数字脉冲有关,也就是和车本身有关. 带宽–>你开车上路,那在一秒内,这条路上最多能容 ...

  2. 4K观影体验需要网络端到端带宽50M-100M,时延RTT<=20ms,丢包率PLR<=3.4*10

    4K观影体验需要: 1)网络端到端带宽50M-100M, 2)时延RTT<=20ms, 3)丢包率PLR<=3.4*10-5 转载于:https://blog.51cto.com/tere ...

  3. 系统网卡性能,丢包率与下载上传,ulimit设置

    参数查考请看 iperf3与ulimit文档 Linux命令 iperf - 网络性能测试工具_kali_yao的博客-CSDN博客 PHP Fatal error: Allowed memory s ...

  4. php丢包率测试,linux 网络延时、丢包与传输带宽关系测试

    一.目的 在互联网中,我们会向网络运营商申请指定额度的带宽.实际传输时,由于网络QoS达不到要求,实际的传输带宽可能达不到标称值.本次测试在局域网环境中使用模拟工具模拟不同QoS下的网络条件,得出不同 ...

  5. 数据丢包怎么修复_网络丢包率如何解决

    网络丢包率如何解决 网络丢包是我们在使用 ping (检测某个系统能否正 常运行) 对目站进行询问时, 数据包由于各 种原因在信道中丢失的现象. ping 使用了 ICMP 回送请求与回送回答报文. ...

  6. tcp丢包率_网络编程 | TCP/IP基础知识

    在2017年10月深圳 Cocos 沙龙上,有幸结识了社区中大名顶顶的Colin,Shawn在论坛上第一次看到Colin的团队用CocosCreator制作的<热血暗黑>时就被深深地震撼到 ...

  7. TTL、Ping包最大字节数、网络时延、抖动、丢包率,看完瞬间变大神!

    Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令,用于测试网络连接量,以及DNS解析是否正常.通过向特定的目的主机发送 ICMP  Echo 请求报文,测试目的站是否可达及了解其有关状 ...

  8. 服务器丢包率与什么有关?以及常用的丢包解决方法

    大家好,今天给大家分享服务器的丢包率与哪些因素有关以及丢包常见的解决方法. 服务器丢包原因 首页要在这里分享下服务器丢包的原因,正常的服务器系统无论是B/S架构或者C/S架构,都需要在S端和B端或者C ...

  9. 解决iperf发包高丢包率的问题

    使用iperf生成并发送数据,在数据包长度固定的情况下(L默认为1470字节),带宽越大,每秒钟发送的数据包越多. 例如: iperf -u -c 10.0.0.2 -p 8080 -t 10 -i ...

最新文章

  1. 解决远程连接mysql很慢的方法(mysql_connect 打开连接慢)
  2. P3435-[POI2006]OKR-Periods of Words【KMP】
  3. (软件工程复习核心重点)第六章实现和测试-第三节:单元测试
  4. 金蝶记账王登录显示连接金蝶云服务器异常,金蝶KIS记账王系统初始化常见问题...
  5. 统一建模语言UML轻松入门之用例
  6. 关于Python、Anaconda、Jupyter
  7. SRv6可编程技术-SRv6 Policy
  8. 嵌入式可视化编程软件选哪个好?(可视化编程平台介绍、测评与选择)【Scratch、Mind+、Mixly】
  9. 早悟兰因(兰因絮果)
  10. 软考各高级、中级、初级官方高清晰PDF教材(更新3版教材与新增教材)
  11. N次剩余 最基础的laji入门
  12. 软硬件全开源,航芯方案分享 | 热敏打印机方案
  13. Django使用manager.py 运行项目,或者uWSGI进行部署项目,使用Nginx进行负载均衡
  14. 【数据安全】4. Android 文件级加密(File-based Encryption)之密钥管理
  15. Python爬虫入门教程 95-100 帮粉丝写Python爬虫之【全网通用评论爬虫】
  16. 短信平台被恶意攻击怎么防御
  17. 300PLC加密与解密
  18. 【树模型与集成学习】(task1)决策树(上)
  19. 数据恢复实战技术总结
  20. 滤镜原理_中性密度滤镜的工作原理以及如何使用它们进行更好的摄影

热门文章

  1. GitHub 装逼指南
  2. 我的学习工作经历,一个园林专业中专毕业生的IT之路 学习编程 创业
  3. 科技,美学,人性——交互设计的十字路口
  4. G. Columns Swaps(并查集)
  5. Mac无法识别硬盘解决办法
  6. 微信小程序的环境准备
  7. 解决Field xxService in x.controller.x required a bean of type ‘x.service.x‘ that could no be found的方法
  8. 通信协议-CAN总线
  9. 马德里的Uber司机
  10. Request header field xxx is not allowed by Access-Control-Allow-Headers in preflight respon