Recientemente noté cómo la función map () en Arduino era voluminosa tanto en términos de espacio flash utilizado como en tiempo de ejecución, en gran parte porque trata con long
e implica una división y multiplicación.
Muchas veces puedes reemplazar mapas con funciones más básicas, es decir,
output = map (input, 0,1023,0,255);
puede convertirse en
output = input >> 2;
o
output = map (input, 0,1023,1023,0);
puede convertirse en
output = 1023 - input;
Tengo una línea en un código que dice:
backlight = map (LDRreading, 0,1023,50,250);
¿Cómo podría simplificarse esto para que sea eficiente tanto en el espacio como en el tiempo?
Permitiré ligeras diferencias en los valores de salida si resulta en una solución mucho mejor.