Inserire comandi nel firmware December 22, 2013 03:59PM |
Registered: 13 years ago Posts: 964 |
Re: Inserire comandi nel firmware December 22, 2013 04:22PM |
Registered: 11 years ago Posts: 388 |
Re: Inserire comandi nel firmware December 22, 2013 04:31PM |
Registered: 13 years ago Posts: 964 |
Re: Inserire comandi nel firmware December 22, 2013 06:27PM |
Registered: 13 years ago Posts: 964 |
Re: Inserire comandi nel firmware December 22, 2013 06:49PM |
Registered: 13 years ago Posts: 964 |
Re: Inserire comandi nel firmware December 24, 2013 03:15PM |
Registered: 11 years ago Posts: 90 |
Re: Inserire comandi nel firmware December 24, 2013 04:52PM |
Registered: 13 years ago Posts: 964 |
Quote
Pelice
sul lato programmazione in generale (il firmware dovrei studiarlo, ma se è una modifica si dovrebbe combinare) potrei essere d'aiuto.
Re: Inserire comandi nel firmware December 25, 2013 04:23AM |
Registered: 11 years ago Posts: 90 |
void setup() { setup_killpin(); setup_powerhold(); MYSERIAL.begin(BAUDRATE); SERIAL_PROTOCOLLNPGM("start"); SERIAL_ECHO_START; // Check startup - does nothing if bootloader sets MCUSR to 0 byte mcu = MCUSR; if(mcu & 1) SERIAL_ECHOLNPGM(MSG_POWERUP); if(mcu & 2) SERIAL_ECHOLNPGM(MSG_EXTERNAL_RESET); if(mcu & 4) SERIAL_ECHOLNPGM(MSG_BROWNOUT_RESET); if(mcu & 8) SERIAL_ECHOLNPGM(MSG_WATCHDOG_RESET); if(mcu & 32) SERIAL_ECHOLNPGM(MSG_SOFTWARE_RESET); MCUSR=0; SERIAL_ECHOPGM(MSG_MARLIN); SERIAL_ECHOLNPGM(VERSION_STRING); #ifdef STRING_VERSION_CONFIG_H #ifdef STRING_CONFIG_H_AUTHOR SERIAL_ECHO_START; SERIAL_ECHOPGM(MSG_CONFIGURATION_VER); SERIAL_ECHOPGM(STRING_VERSION_CONFIG_H); SERIAL_ECHOPGM(MSG_AUTHOR); SERIAL_ECHOLNPGM(STRING_CONFIG_H_AUTHOR); SERIAL_ECHOPGM("Compiled: "); SERIAL_ECHOLNPGM(__DATE__); #endif #endif SERIAL_ECHO_START; SERIAL_ECHOPGM(MSG_FREE_MEMORY); SERIAL_ECHO(freeMemory()); SERIAL_ECHOPGM(MSG_PLANNER_BUFFER_BYTES); SERIAL_ECHOLN((int)sizeof(block_t)*BLOCK_BUFFER_SIZE); for(int8_t i = 0; i < BUFSIZE; i++) { fromsd = false; } // loads data from EEPROM if available else uses defaults (and resets step acceleration rate) Config_RetrieveSettings(); tp_init(); // Initialize temperature loop plan_init(); // Initialize planner; watchdog_init(); st_init(); // Initialize stepper, this enables interrupts! setup_photpin(); lcd_init(); #ifdef CONTROLLERFAN_PIN SET_OUTPUT(CONTROLLERFAN_PIN); //Set pin used for driver cooling fan #endif #ifdef EXTRUDERFAN_PIN SET_OUTPUT(EXTRUDERFAN_PIN); //Set pin used for extruder cooling fan #endif }
void loop() { if(buflen < (BUFSIZE-1)) get_command(); #ifdef SDSUPPORT card.checkautostart(false); #endif if(buflen) { #ifdef SDSUPPORT if(card.saving) { if(strstr_P(cmdbuffer[bufindr], PSTR("M29")) == NULL) { card.write_command(cmdbuffer[bufindr]); if(card.logging) { process_commands(); } else { SERIAL_PROTOCOLLNPGM(MSG_OK); } } else { card.closefile(); SERIAL_PROTOCOLLNPGM(MSG_FILE_SAVED); } } else { process_commands(); } #else process_commands(); #endif //SDSUPPORT buflen = (buflen-1); bufindr = (bufindr + 1)%BUFSIZE; } //check heater every n milliseconds manage_heater(); manage_inactivity(); checkHitEndstops(); lcd_update(); }
Re: Inserire comandi nel firmware December 26, 2013 05:21AM |
Registered: 13 years ago Posts: 964 |
Quote
Pelice
Intanto Buon Natale a tutti!
comunque ho aperto il Marlin che uso e guardando un po', il file di partenza è Marlin_main.cpp perchè contiene il metodo setup() e loop() che sono la base di funzionamento di arduino.
fare una spiegazione del firmware secondo me è poco utile, in quanto i vari firmware sono diversi e ognuno è fatto a suo modo. Purtroppo per spiegarlo bisogna avere nozioni di C e commentare linea per linea il codice..
Quote
Pelice
diciamo che le parti basi sono queste due:
Codice
a loro volta dentro queste parti ci sono funzioni che si spezzettano in mille altre funzioni. e qui secondo me conviene fermarsi. oltre non conviene andare oltre.
Re: Inserire comandi nel firmware December 26, 2013 11:40AM |
Registered: 11 years ago Posts: 90 |
Re: Inserire comandi nel firmware December 26, 2013 11:43AM |
Registered: 13 years ago Posts: 964 |
Re: Inserire comandi nel firmware December 26, 2013 11:45AM |
Registered: 11 years ago Posts: 90 |
Re: Inserire comandi nel firmware December 26, 2013 11:46AM |
Registered: 13 years ago Posts: 964 |
Quote
Pelice
benissimo. lo uso anche io al momento!
Re: Inserire comandi nel firmware December 26, 2013 11:48AM |
Registered: 11 years ago Posts: 90 |
Re: Inserire comandi nel firmware December 26, 2013 11:50AM |
Registered: 13 years ago Posts: 964 |
Re: Inserire comandi nel firmware December 28, 2013 06:22AM |
Registered: 11 years ago Posts: 447 |
Re: Inserire comandi nel firmware December 28, 2013 07:17AM |
Admin Registered: 11 years ago Posts: 954 |
---- "Let me make my move" ---- |
Re: Inserire comandi nel firmware December 30, 2013 11:07AM |
Registered: 13 years ago Posts: 964 |
Re: Inserire comandi nel firmware December 30, 2013 01:05PM |
Registered: 12 years ago Posts: 30 |
Re: Inserire comandi nel firmware December 30, 2013 01:30PM |
Registered: 13 years ago Posts: 964 |
Quote
pictux
..ma non vi conviene partire dal materiale già presente in reprap.org?
E piuttosto completare quello?
E' un wiki e tutti possono contribuire....
Re: Inserire comandi nel firmware December 30, 2013 01:59PM |
Registered: 11 years ago Posts: 90 |
Re: Inserire comandi nel firmware December 30, 2013 02:14PM |
Registered: 13 years ago Posts: 964 |
Quote
Pelice
io ribadisco, senza una conoscenza della programmazione in linguaggio C, non è possibile capire come funziona e se sai programmare in C allora leggendo il codice comprendi cosa fa.
Fare lo schema, ha poca utilità.. per quello non ne esistono in giro.
Può avere senso solo uno scheda dei file .h e che funzioni ci sono all'interno solo per trovare rapidamente dove vengono fatte le cose.
Se vuoi modificare il firmware, prima di tutto bisogna imparare a programmare in C (su cui si basa il linguaggio usato dall'arduino)
Re: Inserire comandi nel firmware December 30, 2013 03:51PM |
Registered: 12 years ago Posts: 30 |
scusa ma guide come queste:Quote
Non c'è materiale nella wiki. Rimanda direttamente ai file su github.
Re: Inserire comandi nel firmware December 30, 2013 04:11PM |
Registered: 11 years ago Posts: 90 |
Re: Inserire comandi nel firmware December 30, 2013 06:22PM |
Registered: 13 years ago Posts: 964 |
In pratica si smazza tutto lui; è questo che non capivo. Quindi, come mi aveva scritto Pelice sopra, Marlin_main.cpp è “il primo” file che “esegue”.Quote
L'IDE non cerca nulla, è il compilatore, avr gcc, che si va a leggere tutto il programma, tutti i file, e trova quello che gli serve per creare l'eseguibile, se manca qualcosa te lo dice tramite vari messaggi di errore.
Re: Inserire comandi nel firmware December 31, 2013 03:46AM |
Registered: 11 years ago Posts: 90 |
Re: Inserire comandi nel firmware December 31, 2013 06:05AM |
Registered: 13 years ago Posts: 964 |
Re: Inserire comandi nel firmware December 31, 2013 06:14AM |
Registered: 11 years ago Posts: 90 |
Re: Inserire comandi nel firmware January 02, 2014 03:44AM |
Registered: 11 years ago Posts: 1,865 |
Re: Inserire comandi nel firmware January 02, 2014 09:21AM |
Registered: 13 years ago Posts: 964 |
Quote
enricodare
Ciao.
Ipotizzo: inserire comandi per guidare un gruppo di estrusione a 4 hotend con movimento a bilancere....
Ho imbroccato almeno qualcosa?