TI的CC2530单片机检测不同类型的方波
来源:互联网 发布:好吃的零食 知乎 编辑:程序博客网 时间:2024/06/05 09:37
之前仅检测过一个引脚上一种方波信号,现在要再引脚上区分三种不同的波形。着实头大了好一会儿。
要检测的三种波形如下图所示:
每种波形的持续长度为500us,时间间隔为10ms.
比如我们在P0_2上检测这个波形,首先要对P0_2进行初始化操作,允许中断检测,这里就不详细介绍了。
从三种波形图来看,起始都是高电平,然后拉低为低电平之后,开始产生波形,因此首先通过中断检测到下降沿,则表示波形开始。
区分原理如下:
1. 从低电平到高电平,说明波形开始。
2. 延时到位置1,如果还是低电平,则表示波形1.
延时到位置2,如果还是低电平,则表示波形2.
延时到位置3,为高电平,且延时到位置4为低电平,则为波形3.
3. 重复2的检测,知道持续出现700us左右的高电平,表示波形结束。
当然这个持续时间可以根据自己需求来定义。
注意:延时函数必须非常准确,可参考我的另一博客:延时函数
参考代码如下:
bool over=false; uint8 btype=0;if(Status2==0||(P0IFG&BV(0))>0) {while(!over){//检测波形while(Status2==0);//如果2一直为低电平,则直到检测到高电平结束Delay_us_New(75);//延时100usif(Status2==0){ Delay_us_New(90); if(Status2==1)btype=1;Delay_us_New(75); Delay_us_New(75); Delay_us_New(75);}else{Delay_us_New(130); //延时170微妙if(Status2==0){btype=2;Delay_us_New(75); Delay_us_New(75);}else{ Delay_us_New(130); Delay_us_New(75);if(Status2==0)btype=3;}} //670us左右仍是高电平Delay_us_New(75);Delay_us_New(75);if(Status2!=0){//表示波形结束over=true;}} }
阅读全文
1 0
- TI的CC2530单片机检测不同类型的方波
- 基于51单片机的简单方波发生器
- 基于msp430单片机的方波发生器
- ti的cc2530的WeBEE CC2530 BasicRF的api解释
- 使用TI CC2530的GPIO控制Led
- 01 TI cc2530的IO口控制
- 02 TI CC2530的uart控制器
- 03 TI cc2530外部中断的应用
- 编写51单片机程序,输出方波,at89s52的单片机
- 方波频率的检测和倍频的程序
- 04 基于TI官方CC2530 BasicRF的简单应用
- cy7c68013a的方波程序
- 单片机测量方波的频率、占空比及相位差的方法
- 用51单片机编写一个产生38K方波的程序
- 单片机编程,输出周期为2S和0.5S的方波
- 用51单片机做信号发生器,同时输出四种频率的方波
- TI的CC2530使用2400波特率的步骤,协议Z-Stack Home 1.2.2.42930
- TI CC2530组网演练(BasicRF——无线控制灯的亮灭)
- 使用GroboUtils多线程并发请求测试springmvc controller
- javaWeb中使用URL的情况总结(相对路径)
- 快速认识和使用浏览器跟踪Http服务及Http服务调试工具
- C++中的命名空间(using name std)
- NIO系列(六)——线程通信(pipe)
- TI的CC2530单片机检测不同类型的方波
- STM32学习笔记之USB库文件分析
- 219. Contains Duplicate II
- HttpClient4.5.2模拟表单post提交上传文件
- 遗传算法的matlab实现
- dispatch_time_t
- 文件I/O指针
- ROS机器人操作系统在线练习
- 阅读QtCreator--常见文件操作的实现