|
发表于 2012-9-26 14:28:32
|
显示全部楼层
silentcookie 发表于 2012-9-23 15:28 
这个是怎么判断的
我想是这样的:
在函数 void timerInter1(void) 中,对yc1,yc2置数0或1,具体是这两句:
if(tim==1) { K3=1, c = absMax(Vxy[2],Vxy[3]), g=Vxy[5]; yc2 = c>Vfull ? 1:0; }//
if(tim==3) { K3=0, c = absMax(Vxy[0],Vxy[1]), g=Vxy[4]; yc1 = c>Vfull ? 1:0; }//
我的理解:
1、tim==1,表示上臂已测了两次,此时应该转测下臂,所以K3=1。g为放大倍数,下臂的放大倍数保存在Vxy[5]中,由于要进行下臂的测量,所以将其取出,下面进行增减以获得适当的信号幅度。Vxy[2],Vxy[3]保存的是两次测量下臂的值,取其大者赋与c,有两个作用,一是用c值确定程控放大器的放大倍数,二是判断是否大于vfull(9600),若大于,则yc2=1,若不大于,则yc2=0。由于Vxy[2],Vxy[3]是下臂的值,因此yc2对应着下臂,例如在100K量程档上,上臂阻抗过低,程控放大器即使是1倍(即最小的放大倍数),下臂的测值仍然是大于9600的,因此yc2=1,在显示时就是低阻溢出。
2、tim==3,与上面的理解相同。
不知对否,共同学习。 |
|