Skip to content

Commit 89feacb

Browse files
ArturBieniek4me-no-dev
authored andcommitted
Fix map() division by zero (#2848)
1 parent aae6f24 commit 89feacb

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

cores/esp32/WMath.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,12 @@ long random(long howsmall, long howbig)
6565
return random(diff) + howsmall;
6666
}
6767

68-
long map(long x, long in_min, long in_max, long out_min, long out_max)
69-
{
70-
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
68+
long map(long x, long in_min, long in_max, long out_min, long out_max) {
69+
long divisor = (in_max - in_min);
70+
if(divisor == 0){
71+
return -1; //AVR returns -1, SAM returns 0
72+
}
73+
return (x - in_min) * (out_max - out_min) / divisor + out_min;
7174
}
7275

7376
unsigned int makeWord(unsigned int w)

0 commit comments

Comments
 (0)