最近在用PGA450做超声接收计时的工作,把PGA450仅当作超声接收端,不发超声。看数据手册,超声接收会在回波数据获取完成之后才会产生中断,这样就没办法在超声信号到来时立即记下时间。求教,如何实现PGA450接收到超声信号时立即触发中断?
接收到回波数据和在超声信号到来时。这两个时间差得不多。所以要实现什么?
因为如果接收到超声信号,但是没有接收到数据,芯片无法判断接收到了超声信号。
要看看参考固件中的PGA450_isrs.C文件.
原本PGA450-Q1计算的方式,是在激励超声波传感器的同时,记录下芯片内部Free running timer的时间,然后在接收到数据且当数据信号高于阈值时,再一次记录free running timer的时间。最后两个时间相减,得到时间差,用于计算距离。
类似的,如果是只做接收,可以想到的方法是,使用PGA450-Q1,通过GPIO或者其他方式检测到传感器发射,然后开始free running timer计时,然后在接收到数据后,再计时一次,两次时间相减,得到时间差。
PGA450_isrs.c文件:
FRT_T1.u8[0]=FRT_MSB;
FRT_T1.u8[1]=FRT_LSB;
Thanks.