📄 readback.c
字号:
#include "config.h"
void ReadBack(unsigned char channel,unsigned char count)
{
unsigned char i,j;
unsigned int k;
ClrWdt( );
// Flags.Bit.LongRing=0;
TMR0L=0X00;//开始记时387us
INTCONbits.TMR0IF=0;
k=20;
while(--k);
if(SEN)
{
TimeTemp[channel][count]=TMR0L; //?? TMR1L
Alarm.Bit.NoSensor=1;
k=15;//有待改进中,探头余震弯曲部分和近距离误报处理须改进,20
while(--k);
if(SEN)
{
TimeTemp[channel][count]=TMR0L;//无探头 TMR1L
Alarm.Bit.NoSensor=1;
k=10;//有待改进中,探头余震弯曲部分和近距离误报处理须改进,
while(--k);
if(SEN)
{
TimeTemp[channel][count]=TMR0L;//无探头
Alarm.Bit.NoSensor=1;
}
}
else Alarm.Bit.NoSensor=0;
}
else Alarm.Bit.NoSensor=0;
k=30;
while(--k);
if(Alarm.Bit.NoSensor==0)//低电平进入,有探头
{
k=10;
while(--k);
while(TMR0L<0X30)//等待高电平,0x39:2.3ms 0x30:2.0ms
{
TimeTemp[channel][count]=TMR0L;
if(SEN)
{
TimeTemp[channel][count]=TMR0L;
j=5;
while(--j);//52us
if(SEN) break;
//else continue;
}
}
//TimeTemp[channel][count]=TMR0L;
while(TMR0L<=0XFD) //1.25内等待低电平
{
TimeTemp[channel][count]=TMR0L;
if(SEN==0)
{
TimeTemp[channel][count]=TMR0L;
j=20;
while(--j);
if(SEN==0) break;
}
}
}
Alarm.Bit.NoSensor=0;
// TXREG=TimeTemp[channel][count];
ClrWdt( );
//TXREG=TimeTemp[channel][count];
while(1) //磨时间,耗完TMR1
{
if(INTCONbits.TMR0IF)
{
INTCONbits.TMR0IF=0; //TMR2溢出中断标志位
break;
}
}
ClrWdt( );
k = 825;
while(--k); //磨时间,凑够25MS
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -