[[configurazione:manuale]]

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
configurazione:manuale [22/10/2017 12:54]
Simone Persiani
configurazione:manuale [08/12/2017 20:26] (versione attuale)
Simone Persiani ↷ Pagina spostata e rinominata da configurazione:manuale:start a configurazione:manuale
Linea 1: Linea 1:
 +{{tag>​tutorial}}
 ====== Configurazione Manuale ====== ====== Configurazione Manuale ======
  
Linea 10: Linea 11:
  
 Le impostazioni sono definite secondo una ben precisa sintassi. Per definirne una si usa il comando ''#​define''​ seguito dal nome dell'​impostazione. Se l'​impostazione prevede un valore, questo viene scritto subito dopo, separato da uno o più spazi. Per far sì che un'​impostazione non venga considerata (e in alcuni casi per disabilitarla) è possibile commentarla,​ facendola precedere da una doppia barra. Le impostazioni sono definite secondo una ben precisa sintassi. Per definirne una si usa il comando ''#​define''​ seguito dal nome dell'​impostazione. Se l'​impostazione prevede un valore, questo viene scritto subito dopo, separato da uno o più spazi. Per far sì che un'​impostazione non venga considerata (e in alcuni casi per disabilitarla) è possibile commentarla,​ facendola precedere da una doppia barra.
- +<​code>​
-<​code ​c>+
 #define IMPOSTAZIONE_1 ​    //​impostazione attiva #define IMPOSTAZIONE_1 ​    //​impostazione attiva
 //#define IMPOSTAZIONE_2 ​  //​impostazione commentata/​disabilitata //#define IMPOSTAZIONE_2 ​  //​impostazione commentata/​disabilitata
Linea 19: Linea 19:
 #define IMPOS 30.56        //valore con cifre decimali (PUNTO al posto della VIRGOLA) #define IMPOS 30.56        //valore con cifre decimali (PUNTO al posto della VIRGOLA)
 #define IMPOS "​abcdefghi" ​ //valore stringa (aperto e chiuso con i DOPPI APICI) #define IMPOS "​abcdefghi" ​ //valore stringa (aperto e chiuso con i DOPPI APICI)
-#define IMPOS {30, 20, 10} //insieme di valori (array) ​+#define IMPOS {30, 20, 10} //insieme di valori (array)
 </​code>​ </​code>​
  
 ==== I vantaggi della compilazione condizionata ==== ==== I vantaggi della compilazione condizionata ====
  
-[…]+La compilazione condizionata permette di controllare in maniera selettiva quali parti di codice debbano essere compilate e caricate sulla scheda elettronica e quali invece debbano essere scartate. Il tutto viene gestito automaticamente dal firmware, l'​utente può limitarsi a definire correttamente la configurazione della propria macchina senza pensare ad altro. Siccome alcune funzionalità richiedono più risorse di altre (sia come righe di codice sia come SRAM necessaria),​ è possibile che una particolare configurazione porti ad un codice eseguibile più oneroso rispetto ad un altro generato con una differente configurazione. Ecco perché gli eseguibili di MK4duo possono variare molto in termini di risorse richieste.
  
-==== Guida alla configurazione manuale di MK4duo ​====+==== Compilazione condizionata e risorse ​====
  
-Per configurare correttamente la tua copia personale di MK4duoè necessario modificare manualmente alcuni file di testo:+È possibile scoprire quante risorse sono necessarie per una specifica configurazione solo dopo aver compilato il firmware. Arduino IDEal termine della compilazione,​ mostra un output molto utile a questo scopo. Ecco un esempio:
  
-^File^Guida^Note| +<code
-|Configuration_Basic.h|[[:​configurazione:​manuale:​basic|Link]]|<wrap em>Obbligatorio</​wrap>​| +Lo sketch usa 56152 byte (22%) dello spazio disponibile ​per i programmi
-|Configuration_Cartesian.h|[[:​configurazione:​manuale:​cartesian|Link]]|Solo ​per meccaniche cartesiane| +Il massimo è 253952 byte.
-|Configuration_Core.h|[[:​configurazione:​manuale:​core|Link]]|Solo per meccaniche Core| +
-|Configuration_Delta.h|[[:​configurazione:​manuale:​delta|Link]]|Solo per meccaniche Delta| +
-|Configuration_Scara.h|[[:​configurazione:​manuale:​scara|Link]]|Solo per meccaniche SCARA| +
-|Configuration_Muve3D.h|[[:​configurazione:​manuale:​muve_3d|Link]]|Solo per meccaniche Muve3D| +
-|Configuration_CNCRouter.h|[[:​configurazione:​manuale:​cncrouter|Link]]|Solo se abilitata la funzione CNC| +
-|Configuration_Laser.h|[[:​configurazione:​manuale:​laser|Link]]|Solo se abilitata la funzione Laser| +
-|Configuration_Temperature.h|[[:​configurazione:​manuale:​temperature|Link]]|<​wrap em>​Obbligatorio</​wrap>​| +
-|Configuration_Feature.h|[[:​configurazione:​manuale:​feature|Link]]|<​wrap em>​Obbligatorio</​wrap>​| +
-|Configuration_Pins.h|[[:​configurazione:​manuale:​pins|Link]]|<​wrap em>​Obbligatorio</​wrap>​| +
-|Configuration_Motor_Driver.h|[[:​configurazione:​manuale:​motor_driver|Link]]|Solo se abilitati driver TMC|+
  
-\\+Le variabili globali usano 3071 byte (37%) di memoria dinamica, lasciando altri 5121 byte liberi per le variabili locali. 
 +Il massimo è 8192 byte. 
 +</​code>​ 
 + 
 +Il dato più significativo di questo messaggio è quello della percentuale di memoria dinamica occupata dalle variabili globali (nel caso qui sopra è il **37%**): un valore al di sopra dell'<​wrap em>​80-90%</​wrap>​ può causare l'​apparire di comportamenti indesiderati ed imprevisti. In genere questo può accadere solo sulle schede a 8bit, caratterizzate da una piccola quantità di SRAM a disposizione:​ in questi casi è possibile provare a disattivare alcune funzioni non strettamente necessarie oppure si può scegliere di installare sulla propria macchina una scheda a 32bit. 
 + 
 +==== Gli svantaggi della compilazione condizionata ==== 
 + 
 +Il principale degli svantaggi della compilazione condizionata è quello di cablare nel codice sorgente molte delle scelte fatte dall'​utente in fase di configurazione. In questo modo tali scelte non possono essere modificate durante il funzionamento della macchina, per esempio tramite un comando apposito. Per farlo sarà invece necessario rifare la configurazione e ricompilare il firmware con le nuove impostazioni. 
 + 
 +==== Guida alla configurazione manuale di MK4duo ====
  
 +Per configurare correttamente la tua copia personale di MK4duo è necessario modificare manualmente alcuni file di testo, nel seguente ordine:
  
 +  * impostazioni principali: **Configuration_Basic.h**
 +  * impostazioni meccaniche:
 +    * Cartesiane: **Configuration_Cartesian.h**
 +    * Core: **Configuration_Core.h**
 +    * Delta: **Configuration_Delta.h**
 +    * SCARA: **Configuration_Scara.h**
 +    * Muve3D: **Configuration_Muve3D.h**
 +  * impostazioni CNC <wrap em>(solo se abilitata la funzione ''​CNCROUTER''​)</​wrap>:​ **Configuration_CNCRouter.h**
 +  * impostazioni taglio laser <wrap em>(solo se abilitata la funzione ''​LASER''​)</​wrap>:​ **Configuration_Laser.h**
 +  * impostazioni delle temperature:​ **Configuration_Temperature.h**
 +  * configurazione delle funzionalità di MK4duo: **Configuration_Feature.h**
 +  * configurazione dell'​utilizzo dei pin: **Configuration_Pins.h**
 +  * impostazioni dei driver dei motori <wrap em>(solo se vengono utilizzati driver TMC o Toshiba)</​wrap>:​ **Configuration_Motor_Driver.h**