Добавлено: 08 апр 2019, 11:16
Алгоритм который должен менять местами старшее и младшее слово счётчика из базы счётчиков и умножая
полученный результат на коэффициент записывать его в базу аналогов, работает правильно на WinDecont и
зависает на A9. Что не так если можно объясните ! И как правильно это cделать чтобы работало на A9.
-------------------------------------------------------------------------------------------------------------
#define CG(x,y) CounterGet(x,(COUNTER*)&y)
#define AW(x,y) AnalogWrite(x,(ANALOG*)&y)
ANALOG a1; float* pf=&a1.value; int* pi=(int*)&a1.value; BYTE* pb=(BYTE*)&a1.value;
CG(15,a1); if(a1.state>0x7fff){a1.state=0; a1.value=0; CG(1,a1); goto mend;};
pb[0]=pb[3]; pb[1]=pb[2]; pb[3]=pb[2]=0;
*pf=(*pi)*5; AW(15,a1);
mend:
;
--------------------------------------------------------------------------------------------------------------
полученный результат на коэффициент записывать его в базу аналогов, работает правильно на WinDecont и
зависает на A9. Что не так если можно объясните ! И как правильно это cделать чтобы работало на A9.
-------------------------------------------------------------------------------------------------------------
#define CG(x,y) CounterGet(x,(COUNTER*)&y)
#define AW(x,y) AnalogWrite(x,(ANALOG*)&y)
ANALOG a1; float* pf=&a1.value; int* pi=(int*)&a1.value; BYTE* pb=(BYTE*)&a1.value;
CG(15,a1); if(a1.state>0x7fff){a1.state=0; a1.value=0; CG(1,a1); goto mend;};
pb[0]=pb[3]; pb[1]=pb[2]; pb[3]=pb[2]=0;
*pf=(*pi)*5; AW(15,a1);
mend:
;
--------------------------------------------------------------------------------------------------------------