Обрезка шильев АЦП. Лог температур

This commit is contained in:
2025-08-27 15:03:06 +03:00
parent 330f17d4e3
commit a9c42feb81
8 changed files with 398 additions and 374 deletions

View File

@@ -102,7 +102,7 @@ AdcRegs.ADCREFSEL.bit.REF_SEL=1;
COUNT_ONE_CANAL = ADC_FREQ/250; // 15
COUNT_DISCHARGE = 4;
COUNT_TRANSICIA = 9;
FILTER_CLIP = 40;
FILTER_CLIP = 20;//40;
WAKE_TIME =7L * ADC_FREQ;
}
if(TermoAD)
@@ -111,7 +111,7 @@ AdcRegs.ADCREFSEL.bit.REF_SEL=1;
COUNT_ONE_CANAL = ADC_FREQ/15; // 250;
COUNT_DISCHARGE = ADC_FREQ/145; // 25;
COUNT_TRANSICIA = ADC_FREQ/25; // 150;
FILTER_CLIP = 200;
FILTER_CLIP = 20;//200;
WAKE_TIME =5L * ADC_FREQ;
}
@@ -174,7 +174,6 @@ interrupt void adc_isr(void)
n = TermoSW*cownt_cans+i;
Temper = *(&AdcRegs.ADCRESULT0 + i) >>4;
Filter = filterbat(&adc_filter[n],Temper);
ok = abs(ADC_table[n]-Temper) < FILTER_CLIP;
@@ -182,9 +181,12 @@ interrupt void adc_isr(void)
if(ok|!prev_ok[n])
{
if(WAKE)ADC_table[n] = Temper;
else ADC_table[n] = Filter;
} }
if(WAKE) ADC_table[n] = Temper;
else
{
Filter = filterbat(&adc_filter[n],Temper);
ADC_table[n] = Filter;
} } }
if(++cownt_one_canal>=COUNT_ONE_CANAL)
{ cownt_one_canal=0;
@@ -195,13 +197,27 @@ interrupt void adc_isr(void)
{
n = TermoSW*cownt_cans+i;
Temper_count(n);
if(cWriteLog)
if(no_write)
{
Log_to_mem(ADC_table[n]);
if(cownt_cans<TPL_CANS)
Log_to_mem(sens_data[n]);
modbus[0x2F]=Log.Adres;
}
prev_ok[n] = cwnt_ok[i];
cwnt_ok[i] = 0;
}
if(++cownt_cans>= TPL_CANS+2)
{
cownt_cans = 0;
}
Test_mem_limit(TermoSW*(TPL_CANS+2));
if(cWriteLog)no_write=1;
} }
fin:

View File

@@ -93,6 +93,7 @@ extern int TPL_CANS,tpl_cans;
extern FLAG chk,sig;
extern FILTERBAT adc_filter[];
extern float out_filter[];
extern float tmpK1,tmpK2;

View File

@@ -131,6 +131,7 @@
#define cLiteFire bit_comand.bit.bit9
#define cHighVolt bit_comand.bit.bitA
#define cWriteLog bit_comand.bit.bitE
#define cReset bit_comand.bit.bitF
#endif //PACKAGE