[Risolto] Background su leonardo


ciao tutti, premetto che non sono un gran programmatore di c ma me la cavo piuttosto bene col vb.net.
ho fatto un programma per il mio arduino per comandare tre motori stepper per una mini cnc 3 assi e il sistema funziona abbastanza bene, per spiegare il tutto in poche righe ho 5 stringhe nelle quali memorizzo miei comandi iso e mammano che le righe vengono eseguite in seriale passo le righe nuove, uso quindi queste stringhe come una sorta di "buffer".
ovviamente dalle stringhe di comando devo estrarre le coordinate ed elaborarle per poterle eseguire, appena ho finito la stringa attuale elaboro quella nuova e così via...
vorrei se possibile poter fare questa elaborazione in background in modo da non interrompere per alcuni millisecondi l'esecuzione dell'iso, è possibile? cercando un po in rete ho letto qualcosa su il sistema (rtos) ma non ho trovato nulla che spieghi da 0 e in modo semplice la cosa.

a te servirebbe un sistema multithreading che, su questo genere di microcontrollori, non esiste.
un sistema multithreading contiene cpu con più core oppure con un solo core ma con più pipeline interne, una cosa cioè capace di eseguire più di un flusso di istruzioni alla volta.
sui micro ad 8 bit tipo quelli montati sulla tua leonardo non si hanno né più core né più pipeline quindi solo 1 flusso di istruzioni alla volta. quindi, se leggi la seriale, non puoi fare altro. anche gli rtos utilizzabili hanno questo limite, sono "sistemi operativi in tempo reale", nel senso che rispondono immediatamente ad un input, ma non possono eseguire più compiti contemporaneamente: anche loro scheduler, infatti, altro non fanno che switchare continuamente da un task all'altro.

detto questo.. tu che esigenze hai? hai bisogno realmente di un sistema che non interrompa mai l'esecuzione del codice principale, neanche per leggere il buffer seriale? buffer che, ti ricordo, viene riempito in automatico dalla periferica seriale, che lavora in modo indipendente dalla cpu.


Arduino Forum > International > Italiano > Software (Moderator: leo72) > [Risolto] Background su leonardo


arduino

Comments

Popular posts from this blog

Connecting Raspberry Pi 2 to P10(1R)-V706 LED Dot Matrix - Raspberry Pi Forums

TypeError: <unknown> is not a numpy array - Raspberry Pi Forums

datso and removing imagetitle - Joomla! Forum - community, help and support