你好
我正在尝试测量通道/端口在扫描时在CR215/216上变为高电平(+5V)所需的时间。
该通道是由一个独立端口启用的基本超声波范围传感器的输出。
任何想法都将不胜感激。
当做
惠普
新对话如下:
我一直在考虑这个问题,但我没有想出太多(但现在是星期五,所以我可能会错过一些东西)。你可以把一些东西放在一个循环中,然后想出“;计数“;但无法将计数等同于时间AFAIK。CR200受到限制,因为程序中返回的任何时间都是基于扫描顶部的关闭时间,扫描分辨率为1秒。有关计数,FWIW,请参阅下文。
Dana W。
公用计数器,端口,标志(1)
数据表(LoopTab,True,1000)
样品(1个,计数器)
床头柜
开始进度
扫描(1,秒)
计数器=0
如果标志(1),则
做
直到端口=-1
PortGet(端口,C1)
计数器=计数器+1
调用表(循环选项卡)
环
标志(1)=0
环
结束如果
下一次扫描
结束程序
新对话如下:
马力,
看看
定时器250ms
指示这可能会给你足够的决心来抓住你想要的东西。
珍妮特
新对话如下:
恐怕所需的分辨率在1/10毫秒的范围内。
传感器要求控制端口(C1)保持在+5V足够的时间,以便超声脉冲来回传播。当再次拾取脉冲时,传感器输出(SE1)变为+5V,并一直保持到控制端口下降。
有一个函数PeriodAvg似乎可以执行微秒的时间测量,非常适合传感器,但我只能得到一个NaN。
惠普
新对话如下:
马力,
我知道您提到您正在使用CR215/216,但CR800/CR1000/CR3000(及以上)记录器具有这样做的功能和CRBasic说明。
在CRBasic中,查看TimerIO指令。
";TimerIO指令用于测量数据记录器的数字I/O端口上的边缘之间的时间(状态转换)或频率";
例如,CR1000中的以下指令使用C1和C2测量C1上的周期以及上升沿和下降沿之间的时间。传感器通过一根跨接导线连接到C1和C2。
公共pwmdat(2)
别名pwmdat(1)=周期
别名pwmdat(2)=t_on
开始进度
扫描(1,秒,0,0)
计时器IO(pwmdat(),0000000 100000031,0,0)
下一次扫描
结束程序
我可以想象把你的控制输出连接到C1,把你的传感器输出连接到C2。然后可能会使用以下内容:
计时器IO(pwmdat(),00000011000000031,0,0)
这只是一个想法。