Elettro grazie per la spiegazione che, come ogni volta, è semplice e chiara.
Quote:forse, e fai bene ad occuparti del progetto...io invece mi occupo principalmente di divulgare
Se scrivi questa frase e ti assecondo su tutto, va finire che il nostro progetto non sarà mai completato !
Su ogni linea di codice possiamo aprire un intero topic e parlare di come sia possibile stravolgerla, ma il nostro obiettivo attuale è comunque quello di realizzare un firmware open-source per realizzare un inverter sinusoidale puro.
Sono contentissimo che ti sei unito al gruppo, che ci stravolgi le idee, il codice e ci fai scoprire tecniche avanzate di programmazione ma, come capo progetto, non posso dimenticare il punto di arrivo.
Quindi va bene ogni miglioria, ma non dobbiamo mai dimenticare che abbiamo un inverter da realizzare, ok ?
Quote:tento proprio di far imboccare a questa discussione ad una inversione di rotta cercando di far alzare la qualità e l'eccellenza del progetto
Concordo su ogni lettera !
Quote:per ottimizzare gli altri due vettori l'idea è quella di fare una coda circolare semaforica perchè SEMBREREBBE inutile una matrice bidimensionale. Se non si è capito una pippa...è normale che sia così!
Ero abituato ad altri tipi di semafori...
Comunque ora va meglio: subito al sodo, frasi che sono chiare, che permettono, anche a chi non sa, di imparare nuove possibilità .
Per capire riporto uno spezzone di Wikipedia:
Il problema del produttore-consumatore è un esempio classico di sincronizzazione tra processi.
Il problema descrive due processi, uno produttore ed uno consumatore, che condividono un buffer comune, di dimensione fissata.
Compito del produttore è generare dati e depositarli nel buffer in continuo.
Contemporaneamente, il consumatore utilizzerà i dati prodotti, rimuovendoli di volta in volta dal buffer.
Il problema è assicurare che il produttore non elabori nuovi dati se il buffer è pieno, e che il consumatore non cerchi dati se il buffer è vuoto.Tale concetto potrebbe essere utilizzato al posto delle nostre matrici dimensionali, risparmiando, forse, anche più del 50% della memoria !
Tuttavia mi sembra uscire fuori tema...
Mi fai capire come pensi di procedere ?
Ha senso implementare una coda semaforica se, forse, stiamo a meno del 10% del codice ?
Sicuramente sarai più esperto di me a scrivere programmi ma, non puoi negare, che si parte da un diagramma di flusso per poi arrivare al codice.
Perchè ti stai spingendo così tanto col primo blocco del diagramma di flusso ?
Sai sicuramente più di me che, implementare un meccanismo del genere adesso, otre a diminuire il consumo di memoria, porrà dei paletti per tutto il codice che deve essere ancora scritto...
Mi dai una motivazione oggettivamente ineccepibile che mi convinga a parlare di un buffer anzichè discutere sulla sincronizzazione, sul feedback, sulle protezioni e su tutto ciò che manca ???
Una raccomandazione: non rispondere che ti metti in panchina a fare l'osservatore, il mio post non vuole assolutamente produrre un simile risultato, vuole semplicemente "sbloccare i lavori" per consentire al progetto di andare avanti...
Che ne pensi ?
Quote:BellaEli stavo facendo qualche prova con i pochi strumenti a disposizione,ma misa che c'e qualche problema forse di duty cycle troppo basso. ma per confermare occorre testare con l'oscilloscopio
Non ho avuto tempo di fare debug e prove, ho del lavoro da consegnare...
Tuttavia sicuramente ci sono problemi, parametrizzando e ottimizzando il codice si creano molti problemi non visibili "a occhio"...
Appena riesco faccio qualche prova e ti aggiorno.
A presto, Eligio.