Bello! Non mettere le parentesi quadre ai link, però, altrimenti non si aprono!
--
Bello! Non mettere le parentesi quadre ai link, però, altrimenti non si aprono!
--
Su Android, la parentesi finale rimane attaccata all'indirizzo!
Forse funzionano meglio le le uncinate:
--
No: perde il link! :(
--
Su schedine tipo quelle con Esp32 col display che adesso innondano il maker-mercato, avrei la necessita' di monitorare eventi mediamente rapidi diciamo sui KHz, mandando in 'uscita' le variabili tenute dal programma che sta girando In pratica ad ogni ciclo del loop principale, viene sparata fuori una riga con una decina di variabili (meno di un centinaio di byte) che permetteranno di capire come variano le cose nel tempo
Ora, come uscite avrei:
L'obiettivo non e' tanto 'vedere' rapidamente, quanto interferire il meno tempo possibile col ciclo del codice che fa le sue cose
Che dite? Come uscita di monitoraggio meglio display, seriale, o bt?
Il 16/05/2024 20:34, RobertoA ha scritto:
Non so che display usino la più leggera mi sembra la seriale. Alla fine dipende da quanto tu riesci a scaricare sull'hardware evitando di eseguire istruzioni o finire in interrupt che distolgono l'attenzione d interrupt più importanti,nel tuo caso assegnerai un interrupt a priorità più bassa alla visualizzazione(ESP 32 mi pare possa farlo) Però l'LCD ogni quanto lo aggiorni?Devi poter vedere qualcosa di fermo e devi farti un buffer di una certa profondità che conservi i valori precedenti ,se no a livello di Khz probabilmente non riuscirai nemmeno a stare dietro a tutte le stampate a schermo. Con la seriale invece li puoi mandare a un terminale da PC,molto più capace e decidere tu quando e come salvare.A 155200 bps o oltre se il tuo dato è molto corto avresti probabilmente tutto il tempo necessario tra 2 acquisizioni .Se è un valore numerico puoi delimitarlo da un header forzando la seriale a aggiungere alcuni caratteri impossibili prima,e fare lo stesso dopo. Però da seriale,se vuoi stampare un valore numerico ci sarà di mezzo una conversione Bin to BCD oppure puoi stampare il solo valore binario,ancora più breve,ma non leggibile da un terminale come teraterm(che io sappia)oppure devi farti tu un programma di conversione. Adesso non so cosa tu debba fare coi dati frequenti ,se te li dovrai mettere da parte oppure agire solo se assumono certi valori,ma per leggerli...già 10 valori al secondo sono illeggibili per molte persone Col Bluetooth npn so
Il 16/05/2024 21:51, blisca ha scritto:
Si, sto pensando di mantenere il display cosi solo per bellezza, visto che c'e' lo si usa, da aggiornare una volta al secondo opure ogni 2 secondi E poi mandare i dati da monitorare sulla seriale, ho provato e tiene anche il 900Kbaud
Tutte le variabili, sul display ci mette circa 5 millisec Sulla seriale, a 921600 ci mette 0,5 millisec circa Via bluetooth, sempre 0,4-0,5 millisec circa
Dopo le prime prove vedo che via seriale e' piu' facile loggare su un file di testo per eventuali sucessive elaborazioni (grafici, verifiche, ecc..), le app tipo terminale bt per telefonino invece sono piu' scarne, oppure dovrei farla ex-novo e mi ci vuole una vita
Mentre via seriale tiri dentro con realterm, butti su excel che li separa in modo comprensibile e poi vedere varianze, correlazioni, aggiungere colonne calcolate, e graficare e' un'attimo
Il 16/05/2024 20:34, RobertoA ha scritto:
E' un problema tipico, risolto in vario modo. Per massimizzare il throughput ed essere il meno invasivo possibile, devi usare un protocollo binario (la printf è abbastanza pesante) e demandare al pc host la conversione in testo.
Prova a cercare il progetto Trice, oppure QSpy o Embedlog o qualcosa del genere e ti si aprirà un mondo.
A livello hw, chiaramente la UART è la cosa più veloce, ma almeno un buffer in RAM glielo devi dare.
Seriale tutta la vita. Gli altri impegnano troppo l'hardware, specie a quelle velocità.
Puoi sempre separare le due cose in due uC: uno produce solo dati seriali ad alta velocità con loop molto stretti, eventualmente bufferizzando internamente, così non perdi nulla, e l'altro accoda, poniamo ogni secondo, così puoi fermarlo come desideri per esaminare i dati o scaricarli su interfacce lente o più impegnative senza interferire col primo.
Con ESP32 ci sono due core e si riesce!
Ciao,
L'ho usato e un pò di codice l'ho scritto,ma senza sfruttare i due cores. Vedo che è ben spiegato in vari siti.Qualcuno l'ha fatto? C'è qualche caso macroscopico in cui i due cores riescano a svolgere in minor tempo,o senza attese gli stessi compiti rispetto a un core solo? Grazie
Il "minor tempo" e' reso possibile dal fatto che usi anche il secondo core, che altrimenti resta inutilizzato. "Senza attese" dipende da cosa deve fare il codice e da come lo scrivi. Nel tuo caso puoi dedicare un core al log su seriale o su BT, senza preoccuparti del tempo impiegato dalle scritture sui dispositivi, evitando la complicazione di scrivere tutto il codice sotto forma di macchina a stati per gestire il progresso delle varie attività tramite chiamate asincrone. Naturalmente dovrai usare degli strumenti di sincronizzazione per evitare di accedere ai dati finche' l'altro core li modifica.
Personalmente ho usato i due core una sola volta, per implementare il mio piccolo Tesla musicale:
Ricordo che i due core si potevano sfruttare anche in modalita' Arduino.
Ciao,
Urko! Ho iniziato da poco a metterli, dopo che ho letto che risolve il problema di alcuni reader quando i link lunghi vengono spezzati su piu' righe... Boh! Thunderbird apre correttamente i miei link.
Ciao,
Il 29/05/2024 21:46, LAB ha scritto:
Ma cosa state usando? Con Thunderbird i link si aprono correttamente sia se indicati col <> che col []
Have something to add? Share your thoughts — no account required.
Ask the community — no account required