Исправлена автокалибровка
This commit is contained in:
parent
a9c42feb81
commit
3f5e355783
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -12,7 +12,7 @@ PHYSICAL MEMORY PARAMETERS
|
||||
|
||||
BOOT LOADER PARAMETERS
|
||||
Table Type: SERIAL PORT (SCI 8 bit Mode)
|
||||
Entry Point: 0x0000b576
|
||||
Entry Point: 0x0000b589
|
||||
|
||||
|
||||
OUTPUT TRANSLATION MAP
|
||||
@ -21,9 +21,9 @@ OUTPUT TRANSLATION MAP
|
||||
--------------------------------------------------------------------------------
|
||||
OUTPUT FILES: D:\project2833\GIT\UKSS_23550_2\bin\UKSSTMS320F28335.bin [b0..b7]
|
||||
|
||||
CONTENTS: 00000000..00007481 BOOT TABLE
|
||||
.cinit : dest=0000b6cb size=000001f7 width=00000002
|
||||
.text : dest=00008000 size=000036cb width=00000002
|
||||
CONTENTS: 00000000..000074a7 BOOT TABLE
|
||||
.cinit : dest=0000b6de size=000001f7 width=00000002
|
||||
.text : dest=00008000 size=000036de width=00000002
|
||||
ramfuncs : dest=0000c13c size=0000002b width=00000002
|
||||
.econst : dest=0000c000 size=00000111 width=00000002
|
||||
.switch : dest=0000c168 size=00000028 width=00000002
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -56,9 +56,9 @@ void setup_adc()
|
||||
if(Desk==dsk_COMM)
|
||||
{
|
||||
AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 0x0001; // Setup 2 conv's on SEQ1
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x5; // ñíà÷àëà òîæå áóäóò òåìïåðàòóðû
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV00 = 0x5; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV01 = 0x4; // Setup ADCINA2 as 2nd SEQ1 conv.
|
||||
/* À íàïðàæåíèé íàì òóò è íå íàäî
|
||||
/* <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD>
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV02 = 0x7; // Setup ADCINA2 as 2nd SEQ1 conv.
|
||||
AdcRegs.ADCCHSELSEQ1.bit.CONV03 = 0x2; // Setup ADCINA2 as 2nd SEQ1 conv.
|
||||
AdcRegs.ADCCHSELSEQ2.bit.CONV04 = 0x3; // Setup ADCINA2 as 2nd SEQ1 conv.
|
||||
@ -163,7 +163,7 @@ interrupt void adc_isr(void)
|
||||
if(TermoAD)
|
||||
{
|
||||
if(cownt_cans == TPL_CANS ) code_tpl_canal = TERMOPAIR-1;
|
||||
if(cownt_cans == TPL_CANS+1) code_tpl_canal = TERMOPAIR-2; // ïîòîìó ÷òî 300 è 400 íàîáîðîò
|
||||
if(cownt_cans == TPL_CANS+1) code_tpl_canal = TERMOPAIR-2; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 300 <20> 400 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
select_tpl_canal(code_tpl_canal);
|
||||
}
|
||||
@ -181,12 +181,11 @@ interrupt void adc_isr(void)
|
||||
|
||||
if(ok|!prev_ok[n])
|
||||
{
|
||||
if(WAKE) ADC_table[n] = Temper;
|
||||
else
|
||||
{
|
||||
Filter = filterbat(&adc_filter[n],Temper);
|
||||
ADC_table[n] = Filter;
|
||||
} } }
|
||||
Filter = filterbat(&adc_filter[n],Temper);
|
||||
|
||||
if(WAKE)ADC_table[n] = Temper;
|
||||
else ADC_table[n] = Filter;
|
||||
} }
|
||||
|
||||
if(++cownt_one_canal>=COUNT_ONE_CANAL)
|
||||
{ cownt_one_canal=0;
|
||||
@ -214,7 +213,7 @@ modbus[0x2F]=Log.Adres;
|
||||
{
|
||||
cownt_cans = 0;
|
||||
|
||||
Test_mem_limit(TermoSW*(TPL_CANS+2));
|
||||
Test_mem_limit(2*TermoSW*(TPL_CANS+1));
|
||||
if(cWriteLog)no_write=1;
|
||||
|
||||
} }
|
||||
|
||||
@ -112,27 +112,25 @@
|
||||
#define CanCycle (modbus+0x78) // ñ÷åò÷èê ïðîõîæäåíèé öèêëîâ CAN
|
||||
#define CanRound (modbus+0x7A) // ñ÷åò÷èê îòîñëàííûõ ìàññèâîâ
|
||||
|
||||
#define komanda modbus[124]
|
||||
#define Protokol modbus[125]
|
||||
#define LastMode modbus[126]
|
||||
#define Commands modbus[127]
|
||||
|
||||
#define comand modbus[128]
|
||||
#define bit_comand Modbus[128]
|
||||
#define bit_kom Modbus[124]
|
||||
|
||||
#define cTestLamp bit_comand.bit.bit0
|
||||
#define cDefParam bit_comand.bit.bit1
|
||||
#define cSaveParam bit_comand.bit.bit2
|
||||
#define cLoadParam bit_comand.bit.bit3
|
||||
#define cTermoCal bit_comand.bit.bit4
|
||||
#define cKoefCalc bit_comand.bit.bit5
|
||||
#define cSecretBt bit_comand.bit.bit6
|
||||
#define cCanReset bit_comand.bit.bit7
|
||||
#define cRawMeat bit_comand.bit.bit8
|
||||
#define cLiteFire bit_comand.bit.bit9
|
||||
#define cHighVolt bit_comand.bit.bitA
|
||||
#define cTestLamp bit_kom.bit.bit0
|
||||
#define cDefParam bit_kom.bit.bit1
|
||||
#define cSaveParam bit_kom.bit.bit2
|
||||
#define cLoadParam bit_kom.bit.bit3
|
||||
#define cTermoCal bit_kom.bit.bit4
|
||||
#define cKoefCalc bit_kom.bit.bit5
|
||||
#define cSecretBt bit_kom.bit.bit6
|
||||
#define cCanReset bit_kom.bit.bit7
|
||||
#define cRawMeat bit_kom.bit.bit8
|
||||
|
||||
#define cWriteLog bit_comand.bit.bitE
|
||||
#define cReset bit_comand.bit.bitF
|
||||
#define cWriteLog bit_kom.bit.bitE
|
||||
#define cReset bit_kom.bit.bitF
|
||||
|
||||
#endif //PACKAGE
|
||||
|
||||
|
||||
@ -115,6 +115,7 @@ void main()
|
||||
|
||||
LastMode = Mode;
|
||||
Protokol = PROTOKOL;
|
||||
precom = Commands;
|
||||
|
||||
for(i=0;i<0x80;i++)
|
||||
county[i]=1;
|
||||
@ -124,8 +125,6 @@ void main()
|
||||
CanRound[i]=
|
||||
CanCycle[i]=0;
|
||||
|
||||
comand=0;
|
||||
|
||||
EALLOW;
|
||||
SysCtrlRegs.WDCR= 0x2F;
|
||||
EDIS;
|
||||
@ -249,13 +248,14 @@ void main()
|
||||
get_Buttons();
|
||||
|
||||
if(Commands!=precom)
|
||||
comand = Commands & (~precom|comand);
|
||||
komanda = Commands & (~precom|komanda);
|
||||
precom = Commands;
|
||||
|
||||
if(cDefParam)
|
||||
{
|
||||
cDefParam=0;
|
||||
Default_params();
|
||||
Commands=precom;
|
||||
}
|
||||
|
||||
if(cSaveParam)
|
||||
@ -268,6 +268,7 @@ void main()
|
||||
{
|
||||
cLoadParam=0;
|
||||
Load_params();
|
||||
Commands=precom;
|
||||
}
|
||||
|
||||
if(cKoefCalc)
|
||||
|
||||
@ -242,7 +242,7 @@ void Init_packMask()
|
||||
Maska[m_FAST][7]|= 0x0100; // Ñ÷åò÷èê ïîñûëîê
|
||||
Maska[m_SLOW][7]|= 0x0E00; // Ñ÷åò÷èê ïîñûëîê
|
||||
Maska[m_SLOW][7]|= 0x6000; // Ïðîòîêîë, àäðåñ
|
||||
Maska[m_FAST][7]|= 0x8000; // Êîìàíäû
|
||||
Maska[m_FAST][7]|= 0x9000; // Êîìàíäû
|
||||
}
|
||||
|
||||
int er_anal(int term, long * count, int edge, int pre)
|
||||
@ -316,7 +316,8 @@ void Temper_count(int chan)
|
||||
}
|
||||
|
||||
if(WAKE)out_filter[chan] = Numb;
|
||||
else out_filter[chan]+=(Numb-out_filter[chan])/MesPerSec;
|
||||
out_filter[chan]+=(Numb-out_filter[chan])/MesPerSec;
|
||||
|
||||
Numb = out_filter[chan];
|
||||
|
||||
kun = chan - cal_addr;
|
||||
|
||||
@ -43,37 +43,37 @@ void Default_params()
|
||||
for(i=0;i<7;i++)
|
||||
Bright[i] = bright[Mode-adr_PLT1][i];
|
||||
|
||||
Cancount[m_FAST] = 2; // * 10msec, пауза между посылками CAN
|
||||
Cancount[m_SLOW] = 100; // * 10msec, пауза между посылками CAN
|
||||
Cancount[m_FAST] = 2; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN
|
||||
Cancount[m_SLOW] = 100; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN
|
||||
|
||||
CanWait[m_FAST] = 1; // * 10msec, пауза после цикла
|
||||
CanWait[m_SLOW] = 1; // * 10msec, пауза после цикла
|
||||
CanWait[m_FAST] = 1; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
CanWait[m_SLOW] = 1; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
CanRestart[m_FAST] = 500; // * 10msec, перезапуск посылки
|
||||
CanRestart[m_SLOW] = 1000; // * 10msec, перезапуск посылки
|
||||
CanRestart[m_FAST] = 500; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CanRestart[m_SLOW] = 1000; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
CanRptVez = 5; // кол-во повторений посылки «keys»
|
||||
CanRptLen = 1; // длина повтораемой посылки «keys»
|
||||
CanRptVez = 5; // <EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>keys<79>
|
||||
CanRptLen = 1; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>keys<79>
|
||||
}
|
||||
else
|
||||
{
|
||||
Cancount[m_FAST] = 20; // * 10msec, пауза между посылками CAN
|
||||
Cancount[m_SLOW] = 100; // * 10msec, пауза между посылками CAN
|
||||
Cancount[m_FAST] = 20; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN
|
||||
Cancount[m_SLOW] = 100; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAN
|
||||
|
||||
CanWait[m_FAST] = 1; // * 10msec, пауза после цикла
|
||||
CanWait[m_SLOW] = 1; // * 10msec, пауза после цикла
|
||||
CanWait[m_FAST] = 1; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
CanWait[m_SLOW] = 1; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
CanRestart[m_FAST] = 500; // * 10msec, перезапуск посылки
|
||||
CanRestart[m_SLOW] = 1000; // * 10msec, перезапуск посылки
|
||||
CanRestart[m_FAST] = 500; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CanRestart[m_SLOW] = 1000; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
CanRptVez = 1; // кол-во повторений посылки «keys»
|
||||
CanRptLen = 1; // длина повтораемой посылки «keys»
|
||||
CanRptVez = 1; // <EFBFBD><EFBFBD><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>keys<79>
|
||||
CanRptLen = 1; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>keys<79>
|
||||
}
|
||||
|
||||
if(Mode == adr_PLT1)
|
||||
{
|
||||
RSleng = 9; // длина посылки RS485
|
||||
RScount = 25; // * 10msec, пауза между посылками RS485
|
||||
RSleng = 9; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RS485
|
||||
RScount = 25; // * 10msec, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RS485
|
||||
}
|
||||
|
||||
if(Desk == dsk_COMM)
|
||||
@ -141,11 +141,10 @@ void Load_params()
|
||||
Save_params();
|
||||
if(TermoSW)
|
||||
{
|
||||
cTermoCal = 1;
|
||||
Caliber_time = 25L * ADC_FREQ;
|
||||
cTermoCal = 1;
|
||||
} } }
|
||||
|
||||
|
||||
void Save_params()
|
||||
{
|
||||
unsigned int i,dif=0;
|
||||
@ -160,13 +159,12 @@ void Save_params()
|
||||
{
|
||||
param[ANSWER_LEN] = get_crc16(param,ANSWER_LEN);
|
||||
Seeprom_write(0x3FFF-(ANSWER_LEN+1),param,(ANSWER_LEN+1)*2);
|
||||
}
|
||||
}
|
||||
} }
|
||||
|
||||
/***************************************************************/
|
||||
/***************************************************************/
|
||||
/* Передача данных по протоколу ModBus - команда 3
|
||||
Чтение ачеек данных */
|
||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ModBus - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
/***************************************************************/
|
||||
/***************************************************************/
|
||||
|
||||
@ -174,15 +172,15 @@ void ReceiveCommandModbus3(RS_DATA *rs_arr)
|
||||
{
|
||||
unsigned int crc, Address_MB, Length_MB, cal, i;
|
||||
|
||||
// получили начальный адрес чтениа
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Address_MB =/*(rs_arr->RS_Header[2] << 8) |*/ rs_arr->RS_Header[3];
|
||||
|
||||
// получили количество слов данных
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Length_MB = (rs_arr->RS_Header[4] << 8) | rs_arr->RS_Header[5];
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// Отсылка
|
||||
/* Посчитали контрольную сумму перед самой посылкой */
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
rs_arr->buffer[0] = CNTRL_ADDR;
|
||||
rs_arr->buffer[1] = CMD_MODBUS_3;
|
||||
@ -232,17 +230,17 @@ void ReceiveCommandModbus6(RS_DATA *rs_arr)
|
||||
unsigned int Address_MB, Data_MB, i;
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
// Отсылка
|
||||
/* Отправлаем назад то же самое */
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> */
|
||||
|
||||
for (i=0;i<8;i++)
|
||||
rs_arr->buffer[i] = rs_arr->RS_Header[i];
|
||||
|
||||
|
||||
// получили начальный адрес записи
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Address_MB = (/*(rs_arr->RS_Header[2] << 8) | */rs_arr->RS_Header[3]);
|
||||
|
||||
// получили слово данных
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
Data_MB = (rs_arr->RS_Header[4] << 8) | rs_arr->RS_Header[5];
|
||||
|
||||
modbus[Address_MB] = Data_MB;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user