He reducido un problema en mi código que crea 260 bytes adicionales de uso de RAM estática:
BYTE Height = 150;
BYTE sampleLevel(BYTE ADCchan,BYTE averages)
{
float samp;
//int samp;
BYTE level;
samp = avgSampleADC(ADCchan,averages);
level = 100-(samp*100/Height);
return level;
}
BYTE
aquí es un tipo uint8_t. Si comento float samp
y lo convierto en un tipo int
, el uso de RAM estática se reduce a lo que espero que sea. Supongo que esto tiene algo que ver con la operación matemática level = 100-(samp*100/Height);
pero no sé qué es. ¿Qué está sucediendo para crear tal comportamiento?