|
Inserire comandi nel firmware December 22, 2013 03:59PM |
Registered: 14 years ago Posts: 964 |
|
Re: Inserire comandi nel firmware December 22, 2013 04:22PM |
Registered: 12 years ago Posts: 388 |
|
Re: Inserire comandi nel firmware December 22, 2013 04:31PM |
Registered: 14 years ago Posts: 964 |
|
Re: Inserire comandi nel firmware December 22, 2013 06:27PM |
Registered: 14 years ago Posts: 964 |
|
Re: Inserire comandi nel firmware December 22, 2013 06:49PM |
Registered: 14 years ago Posts: 964 |
|
Re: Inserire comandi nel firmware December 24, 2013 03:15PM |
Registered: 12 years ago Posts: 90 |
|
Re: Inserire comandi nel firmware December 24, 2013 04:52PM |
Registered: 14 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: 12 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: 14 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: 12 years ago Posts: 90 |
|
Re: Inserire comandi nel firmware December 26, 2013 11:43AM |
Registered: 14 years ago Posts: 964 |
|
Re: Inserire comandi nel firmware December 26, 2013 11:45AM |
Registered: 12 years ago Posts: 90 |
|
Re: Inserire comandi nel firmware December 26, 2013 11:46AM |
Registered: 14 years ago Posts: 964 |
Quote
Pelice
benissimo. lo uso anche io al momento!
|
Re: Inserire comandi nel firmware December 26, 2013 11:48AM |
Registered: 12 years ago Posts: 90 |
|
Re: Inserire comandi nel firmware December 26, 2013 11:50AM |
Registered: 14 years ago Posts: 964 |
|
Re: Inserire comandi nel firmware December 28, 2013 06:22AM |
Registered: 12 years ago Posts: 447 |
|
Re: Inserire comandi nel firmware December 28, 2013 07:17AM |
Admin Registered: 12 years ago Posts: 954 |

| ---- "Let me make my move" ---- |
|
Re: Inserire comandi nel firmware December 30, 2013 11:07AM |
Registered: 14 years ago Posts: 964 |
|
Re: Inserire comandi nel firmware December 30, 2013 01:05PM |
Registered: 13 years ago Posts: 30 |
|
Re: Inserire comandi nel firmware December 30, 2013 01:30PM |
Registered: 14 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: 12 years ago Posts: 90 |
|
Re: Inserire comandi nel firmware December 30, 2013 02:14PM |
Registered: 14 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: 13 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: 12 years ago Posts: 90 |
|
Re: Inserire comandi nel firmware December 30, 2013 06:22PM |
Registered: 14 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: 12 years ago Posts: 90 |
|
Re: Inserire comandi nel firmware December 31, 2013 06:05AM |
Registered: 14 years ago Posts: 964 |
|
Re: Inserire comandi nel firmware December 31, 2013 06:14AM |
Registered: 12 years ago Posts: 90 |
|
Re: Inserire comandi nel firmware January 02, 2014 03:44AM |
Registered: 13 years ago Posts: 1,865 |
|
Re: Inserire comandi nel firmware January 02, 2014 09:21AM |
Registered: 14 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?