创建的论坛回复
-
作者帖子
-
theremino
钥匙大师E se fosse che hai configurato male i canali nell’HAL ?
Differenziale / Single ended… 等等.Non ricordo se te l’ho già detto ,ma non faresti bene a chiamarmi su skype ? ( utente livio_enrico )
Oppure al telefono ? 0125 57290Se mi fai vedere i canali forse ti trovo subito l’errore
theremino
钥匙大师再见,
per ora l’unica cosa che ho notato e che potrebbe causare problemi è il tipo di modulo TTGO.
Noi abbiamo definito che i migliori erano i Pico KIT e consigliato di usare quelli
e quindi gli altri modelli li abbiamo provati poco e ci siamo fidati delle informazioni scritte da loro.Però in effetti da quello che dici sembra essere l’ADC24 a non andare.
Ne puoi provare un altro ?Sei in contatto con Lello? Solo Lello ha usato spesso i TTGO.
Magari fatti mandare subito un altro ADC24 per vedere se il tuo non funziona.
Oppure prova a controllare con una lente i resistori da 100 ohm dei due pin che non vanno, potrebbero essere saldati male (solo da un lato).Se non riesci scrivimi e cercheremo altro.
再见
利维奥theremino
钥匙大师Per i terremoti andrebbero bene anche 10 ms o più.
Noi usiamo sempre la versione VB, quella in CSharp è più macchinosa e la abbiamo fatta solo per fare contenti gli amanti dei punti e virgola.Riguardo al sismografo USB non ho capito di cosa si tratta.
theremino
钥匙大师Se li usi contemporaneamente ciascuno scambia come fosse da solo, non si rallentano a vicenda.
Però lo ESP32 su WiFi va anche meno del Master, 该 300 一个 600 circa a seconda del segnale WiFi e della velocità del PCSe vuoi arrivare a 10 mila campioni al secondo l’unico metodo sarebbe scrivere firmware sullo ESP32 e fare dei blocchi di dati in memoria dello ESP32
Poi dovresti trasferirli in parallelo con i pin “generic” (impostandoli al loro massimo numero che non ricordo , 也许 16)
Poi dovresti leggerli con il tuo software e rimetterli in fila uno dopo l’altro.Ë’ una cosa lunga e difficile ma altre strade (leggere lo ESP32 con la tua applicazione) sarebbe ancora più difficile.
Ci hanno provato anche altri e non sono riusciti.E conta anche che stai passando per slot in memoria che sono asincroni per cui una applicazione scrive (non si sa bene quando)
e se l’altra legge troppo velocemente finisce per leggere due volte lo stesso valoreIl nostro sistema è fatto per lavorare fino a ripetizioni di circa 100 per secondo, che per quasi tutte le applicazioni vanno benissimo.
Per andare oltre non si dovrebbero più usare gli Slot e nemmeno la USB come la usiamo noi (senza driver).theremino
钥匙大师La velocità di “scambio” dati della USB è limitata dal kernel del sistema operativo che ha un tick di 1 mS
Questo è un limite dei kernel di tutti i sistemi operativi, Linux e Mac compresi.Per cui nelle condizioni migliori si potrebbe arrivare a 1000 scambi al secondo ma normalmente oltre a 800 non si arriva
E questi scambi sono anche un po’ sovrastimati dal contatore dell’HAL,
se vai a vedere con l’oscilloscopio i tempi saranno di 1 该 2 mS per cui puoi avere una certa sicurezza solo fino a 500
e una buona stabilità dei tempi solo fino a 100 每秒交易.Per mandare più campioni li si dovrebbero mandare in “批量” cioè accumularli nel micro e poi mandarne decine o centinaia ad ogni scambio.
妈, 对不起, il nostro sistema non è fatto così.Questo limite era chiaramente specificato sia nella documentazione dei Master, che in quella dell’HAL e anche in quella dell’ADC24.
Per superare questo limite dovresti scrivere molto codice, non so se nel PIC del Master o nello ESP32, quale stai usando ?
Se è lo ESP32 potresti usare una decina di generic-pins per mandare dieci dati all’HAL in ogni scambio.
Ma se è il Master il suo HAL non prevede i pin “generic” e quindi dovresti modificare il programma HAL e dovresti anche modificare il firmware che è nel PIC del Master
(è tutto open source ma il lavoro da fare sarebbe davvero molto)Inoltre l’ADC24 può arrivare a velocità alte solo se lavora a singolo canale ma ha un tempo di cambio canale molto lungo e quindi credo che con tre canali non arriverai a più di 100 200 campioni al secondo (potrei sbagliarmi e in tal caso dovresti fare i conti precisi consultando il datasheet dell’ADC24)
theremino
钥匙大师Puoi sicuramente prendere i nostri sorgenti dell’HAL e ricompilarli a 64 位
(utilizzando Visual Studio 2008 come spiegato nel nostro sito)
https://www.theremino.com/downloads/notes-on-software#developmentPerò poi ti perdi tutte le altre comodità del nostro sistema, oscilloscopi, analizzatori di spettro, e tante altre applicazioni molto utili.
Dovresti ricompilarle tutte e sono quasi 200.Potresti invece fare una app a 32bit in CPP che legge dai nostri slot e scrive in un file normale, e quello MathLab può sicuramente leggerlo.
Al file devi dare le proprietà di condivisione lettura e scrittura.
Se non riesci ti aiuterò dato che ho già fatto dei file condivisibili in quel modo.
E dato che si tratta di pochi byte tutto avviene velocemente in memoria cache, anche se il file è un normale file da HardDisk.Poi metti tutto in una cartella e sottocartelle, HAL, Applicazione in C e link a MathLab
E infine avvii e chiudi tutti quanti con un solo click come fossero una unica applicazione con Theremino_StartAll
https://www.theremino.com/downloads/foundations#startertheremino
钥匙大师Novità?
Sei riuscito a leggere?Rispondo alle domande che avevo trascurato:
DOMANDE
———————————————————————————————-
I valori float come sono ordinati nel file? Sequenzialmente dallo slot 1 上?
Quindi se ho capito bene.
Leggo i primi 4byte del mapped file ed ho il segnale sullo slot1.
Leggo i secondi 4 byte del mapped file ed ho il segnale sullo slot 2.
Leggo i terzi 4 byte del mapped file ed ho il segnale sullo slot 3,
Potrei scrivere una serie di funzioni (da condividere) per rendere più pulito e ordinato il lavoro…RISPOSTE
———————————————————————————————–
I valori float sono ordinati nel file sequenzialmente dallo Slot ZERO in poi.
Il file contiene 4096 byte che contengono i valori degli Slot dallo 0 人 999 (更 96 byte per ora non usati)
Lo Slot ZERO è un Float scritto nei Byte da 0 一个 3
Lo Slot UNO è un Float scritto nei Byte da 4 一个 7
Lo Slot DUE è un Float scritto nei Byte da 8 一个 11
e così via fino allo Slot 999La serie di funzioni per rendere più pulito e ordinato il lavoro si trova già negli esempi
che abbiamo pubblicato in VbNet, CSharp, C++, Python, Pascal e VB6
e i link per arrivarci sono nel messaggio precedente.32 Ë 64 位
———————————————————————————————–
Ti ricordo di fare attenzione alla nota sui 32 Ë 64 bit del messaggio precedente
nel caso ti fosse sfuggita.theremino
钥匙大师Sul nostro sito abbiamo pubblicato molti esempi di lettura e scrittura dei MemoryMappedFile in vari linguaggi tra cui anche il C++
Li trovi qui:
https://www.theremino.com/downloads/foundations#easyslotE anche qui:
https://www.theremino.com/downloads/foundations#mmfMa c’è anche un’altra cosa che devi considerare:
1) I MemoryMappedFile cui accedono le app a 32 bit non sono gli stessi a cui accedono la app s 64 位 (casini di Windows e di SysWow64 ecc…)
2) Noi dobbiamo fare tutte le nostre applicazioni a 32 bit altrimenti dovremmo darle in due versioni, ma peggio ancora nessuno con i tablet e i mini pc potrebbe usarle.
3) Di conseguenza la tua app devi compilarla a 32 bit altrimenti non vede i MMF giusti, se li crea lei al volo e legge solo zeri. -
作者帖子