mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 21:03:48 -07:00
Reintroduce AvgAdv, avoid *64 as it could easily overflow
This reverts partly commit 9189dc8563
.
This commit is contained in:
parent
ea9a8e26dd
commit
0ce3be2f34
3 changed files with 15 additions and 11 deletions
|
@ -137,11 +137,14 @@ static uint16_t ReadAdc(int ch) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// was static - merlok
|
// was static - merlok
|
||||||
|
uint16_t AvgAdc(int ch) {
|
||||||
|
return SumAdc(ch, 32) >> 5;
|
||||||
|
}
|
||||||
|
|
||||||
uint16_t SumAdc(int ch, int NbSamples) {
|
uint16_t SumAdc(int ch, int NbSamples) {
|
||||||
uint16_t a = 0;
|
uint16_t a = 0;
|
||||||
for (uint8_t i = 0; i < NbSamples; i++)
|
for (uint8_t i = 0; i < NbSamples; i++)
|
||||||
a += ReadAdc(ch);
|
a += ReadAdc(ch);
|
||||||
|
|
||||||
return (a + (NbSamples >> 1) - 1);
|
return (a + (NbSamples >> 1) - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -225,9 +228,9 @@ static void MeasureAntennaTuning(void) {
|
||||||
static uint16_t MeasureAntennaTuningHfData(void) {
|
static uint16_t MeasureAntennaTuningHfData(void) {
|
||||||
|
|
||||||
#if defined RDV4
|
#if defined RDV4
|
||||||
return (MAX_ADC_HF_VOLTAGE_RDV40 * SumAdc(ADC_CHAN_HF_RDV40, 64)) >> 16;
|
return (MAX_ADC_HF_VOLTAGE_RDV40 * SumAdc(ADC_CHAN_HF_RDV40, 32)) >> 15;
|
||||||
#else
|
#else
|
||||||
return (MAX_ADC_HF_VOLTAGE * SumAdc(ADC_CHAN_HF, 64)) >> 16;
|
return (MAX_ADC_HF_VOLTAGE * SumAdc(ADC_CHAN_HF, 32)) >> 15;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -540,7 +543,7 @@ void ListenReaderField(uint8_t limit) {
|
||||||
LEDsoff();
|
LEDsoff();
|
||||||
|
|
||||||
if (limit == LF_ONLY) {
|
if (limit == LF_ONLY) {
|
||||||
lf_av = lf_max = SumAdc(ADC_CHAN_LF, 32) >> 5;
|
lf_av = lf_max = AvgAdc(ADC_CHAN_LF);
|
||||||
Dbprintf("LF 125/134kHz Baseline: %dmV", (MAX_ADC_LF_VOLTAGE * lf_av) >> 10);
|
Dbprintf("LF 125/134kHz Baseline: %dmV", (MAX_ADC_LF_VOLTAGE * lf_av) >> 10);
|
||||||
lf_baseline = lf_av;
|
lf_baseline = lf_av;
|
||||||
}
|
}
|
||||||
|
@ -549,9 +552,9 @@ void ListenReaderField(uint8_t limit) {
|
||||||
|
|
||||||
#if defined RDV4
|
#if defined RDV4
|
||||||
// iceman, useless, since we are measuring readerfield, not our field. My tests shows a max of 20v from a reader.
|
// iceman, useless, since we are measuring readerfield, not our field. My tests shows a max of 20v from a reader.
|
||||||
hf_av = hf_max = SumAdc(ADC_CHAN_HF_RDV40, 32) >> 5;
|
hf_av = hf_max = AvgAdc(ADC_CHAN_HF_RDV40);
|
||||||
#else
|
#else
|
||||||
hf_av = hf_max = SumAdc(ADC_CHAN_HF, 32) >> 5;
|
hf_av = hf_max = AvgAdc(ADC_CHAN_HF);
|
||||||
#endif
|
#endif
|
||||||
Dbprintf("HF 13.56MHz Baseline: %dmV", (MAX_ADC_HF_VOLTAGE * hf_av) >> 10);
|
Dbprintf("HF 13.56MHz Baseline: %dmV", (MAX_ADC_HF_VOLTAGE * hf_av) >> 10);
|
||||||
hf_baseline = hf_av;
|
hf_baseline = hf_av;
|
||||||
|
@ -585,7 +588,7 @@ void ListenReaderField(uint8_t limit) {
|
||||||
LED_D_OFF();
|
LED_D_OFF();
|
||||||
}
|
}
|
||||||
|
|
||||||
lf_av_new = SumAdc(ADC_CHAN_LF, 32) >> 5;
|
lf_av_new = AvgAdc(ADC_CHAN_LF);
|
||||||
// see if there's a significant change
|
// see if there's a significant change
|
||||||
if (ABS(lf_av - lf_av_new) > REPORT_CHANGE) {
|
if (ABS(lf_av - lf_av_new) > REPORT_CHANGE) {
|
||||||
Dbprintf("LF 125/134kHz Field Change: %5dmV", (MAX_ADC_LF_VOLTAGE * lf_av_new) >> 10);
|
Dbprintf("LF 125/134kHz Field Change: %5dmV", (MAX_ADC_LF_VOLTAGE * lf_av_new) >> 10);
|
||||||
|
@ -604,9 +607,9 @@ void ListenReaderField(uint8_t limit) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined RDV4
|
#if defined RDV4
|
||||||
hf_av_new = SumAdc(ADC_CHAN_HF_RDV40, 32) >> 5;
|
hf_av_new = AvgAdc(ADC_CHAN_HF_RDV40);
|
||||||
#else
|
#else
|
||||||
hf_av_new = SumAdc(ADC_CHAN_HF, 32) >> 5;
|
hf_av_new = AvgAdc(ADC_CHAN_HF);
|
||||||
#endif
|
#endif
|
||||||
// see if there's a significant change
|
// see if there's a significant change
|
||||||
if (ABS(hf_av - hf_av_new) > REPORT_CHANGE) {
|
if (ABS(hf_av - hf_av_new) > REPORT_CHANGE) {
|
||||||
|
|
|
@ -30,6 +30,7 @@ void send_wtx(uint16_t wtx);
|
||||||
void ReadMem(int addr);
|
void ReadMem(int addr);
|
||||||
void __attribute__((noreturn)) AppMain(void);
|
void __attribute__((noreturn)) AppMain(void);
|
||||||
|
|
||||||
|
uint16_t AvgAdc(int ch);
|
||||||
uint16_t SumAdc(int ch, int NbSamples);
|
uint16_t SumAdc(int ch, int NbSamples);
|
||||||
|
|
||||||
//void PrintToSendBuffer(void);
|
//void PrintToSendBuffer(void);
|
||||||
|
|
|
@ -53,9 +53,9 @@ static uint16_t FpgaSendQueueDelay;
|
||||||
|
|
||||||
static uint16_t ReadReaderField(void) {
|
static uint16_t ReadReaderField(void) {
|
||||||
#if defined RDV4
|
#if defined RDV4
|
||||||
return SumAdc(ADC_CHAN_HF_RDV40, 32) >> 5;
|
return AvgAdc(ADC_CHAN_HF_RDV40);
|
||||||
#else
|
#else
|
||||||
return SumAdc(ADC_CHAN_HF, 32) >> 5;
|
return AvgAdc(ADC_CHAN_HF);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue