Salve.
Sono uno dei collaboratori di Marlin firmware per stampanti 3d.
Ho questo errore in compilazione sulle schede AVR, la riga in questione è questa:
pid_error[HOTEND_INDEX] = target_temperature[HOTEND_INDEX] - current_temperature[HOTEND_INDEX];
Dove HOTEND_INDEX va da 0 a 3 e il problema è nella variabile float array current_temperature[].
Ho praticamente risolto cosi:
float current_temp;
switch (HOTEND_INDEX) {
case 0:
current_temp = current_temperature[0]; break;
case 1:
current_temp = current_temperature[1]; break;
case 2:
current_temp = current_temperature[2]; break;
case 3:
current_temp = current_temperature[3]; break;
}
E poi messo la riga in questione cosi:
pid_error[HOTEND_INDEX] = target_temperature[HOTEND_INDEX] - current_temp;
Ora l'errore è sparito, ma non riesco proprio a capire perché...
Ma la cosa ancora più strana è che la riga subito dopo è questa:
dTerm[HOTEND_INDEX] = K2 * PID_PARAM(Kd, HOTEND_INDEX) * (current_temperature[HOTEND_INDEX] - temp_dState[HOTEND_INDEX]) + K1 * dTerm[HOTEND_INDEX];
E quì l'errore non me lo da...
Potete aiutarmi a trovare una risposta logica?
Grazie mille
MagoKimbra