Posts written by GILA75

view post Posted: 9/1/2020, 20:56 Perplessità processi (c,java,python, generico) - Informatica.
CITAZIONE
Cosa fa un catenificio? Catene da neve? Catenine? tutti i tipi di catene? :D interessante!

Mica tanto interessante :( Hai presente le catene che vedi ai porti, sulle navi ecc? Ecco quelle sono piccole!!!
A vote maneggio catene diametro 40 mm... fai conto un anello sei sui 4 kg...enormi.
Ma comunque interessante o meno, di grazia ho il lavoro e al giorno d'oggi è oro.
view post Posted: 8/1/2020, 20:43 Perplessità processi (c,java,python, generico) - Informatica.
Ho imparato una cosa nuova...chi lo avrebbe detto che avevo più core...
Mi confondono un po' quei dati perchè si parlava di core fisici e non ricordo...virtuali (può essere?)
Calcola che il pc l'ho preso nel 2011/2012 un po' datato direi.

CITAZIONE
Quindi ok.
La mia nota sopra era molto più a "basso livello" ossia quando hai il controllo diretto dell'hardware e devi progettare da capo.

No,no, non ne sarei assolutamente in grado. Già solo in C, conoscere bene processi, segnali ecc è un macello.
Io di quegli argomenti : socket, pipe,processi e thread, ho solo un'infarinatura.
Se non ci lavori, o non frequenti ambienti "stimolanti", si, lo studi ma dopo una settimana, ti scordi.
Programmazione come hobby, si fa fatica...e tu calcola che io ora lavoro in un catenificio !!!! :D :sick:
Grazie delle info !
view post Posted: 8/1/2020, 20:35 pwm con ne555 e mosfet - Elettronica generale
CITAZIONE
Lo si poteva/potrebbe usare come un vago controllo di frequenza o duty-cycle ma in maniera limitata e quindi, in generale... niente. Ricordo dei tentativi di modulazione di frequenza di un trasmettitore a infrarossi!

Ora che ci penso (ricordi ormai sepolti), io il pin 5 l'avevo usato per modulare una bobina d'alta tensione di una televisione.
Praticamente il 555 fungeva d'oscillatore, il solito transistor di potenza e la bobina dal quale scoccava l'arco ad alta tensione.
Sul pin 5 entrava la bassa frequenza di una radiolina e la musica se pur in modo un po' grezzo si sentiva "fuoriuscire" dall'arco.
Andava tarata una frequenza giusta. l'arco doveva essere silenzioso da li in poi sentivi questa "musichetta".
Era solo un gioco...
view post Posted: 8/1/2020, 18:53 Perplessità processi (c,java,python, generico) - Informatica.
Forse ho detto una caxxata
da terminale per vedere le cpu:
HTML
gila@gila-pc:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 16
Model: 5
Model name: AMD Athlon(tm) II X4 640 Processor
Stepping: 3
CPU MHz: 1800.000
CPU max MHz: 3000,0000
CPU min MHz: 800,0000
BogoMIPS: 6027.17
Virtualization: AMD-V
L1d cache: 64K
L1i cache: 64K
L2 cache: 512K
NUMA node0 CPU(s): 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save
gila@gila-pc:~$

No so bene interpretare, ma sembrerebbero più di uno.
Codice a processi:
HTML
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/wait.h>
#include <math.h>



int main(int argc, char *argv[])
{
int pid,pid1,status;
int i;
double res;
double x=133.55;
double y=0.351;


//********************************************
// filglio 1
//********************************************

pid = fork();
if ( pid == -1 )
{
printf ("Impossibile creare un nuovo processo\n");
exit(1);
}

if ( pid == 0 )
{
printf ("sono il figlio con pid (%d).Mio padre è (%d)\n",getpid(),getppid());

for (i=0; i<15000000; i++)
res=pow (sqrt(x/y),-0.215);
printf ("res0 =%f\n", res);
exit(0);
}

//********************************************
// filglio 2
//********************************************

pid1 = fork();
if ( pid1 == -1 )
{
printf ("Impossibile creare un nuovo processo\n");
exit(0);
}

if ( pid1 == 0 )
{
printf ("sono il figlio con pid (%d).Mio padre è (%d)\n",getpid(),getppid());

for (i=0; i<15000000; i++)
res=pow (sqrt(x/y),-0.215);
printf ("res =%f\n", res);
exit(0);
}

else
wait(&status);
wait(&status);
return 0;





}

tempo:
HTML
gila@gila-pc:~/Scrivania$ time ./xx
sono il figlio con pid (3623).Mio padre è (3621)
sono il figlio con pid (3622).Mio padre è (3621)
res =0.527976
res0 =0.527976

real 0m1.403s
user 0m2.777s
sys 0m0.003s
gila@gila-pc:~/Scrivania$


a funzioni:
HTML
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void f1(double x,double y)
{
int i;
double res;
for (i=0; i<15000000; i++)
res=pow (sqrt(x/y),-0.215);
printf ("res =%f\n", res);
}
void f2(double x,double y)
{
int i;
double res;
for (i=0; i<15000000; i++)
res=pow (sqrt(x/y),-0.215);
printf ("res_2 =%f\n", res);
}




int main(void)
{
double x=133.55;
double y=0.351;
f1(x,y);
f2(x,y);
return 0;
}


tempo:
HTML
gila@gila-pc:~/Scrivania$ time ./xx
res =0.527976
res_2 =0.527976

real 0m2.737s
user 0m2.736s
sys 0m0.000s
gila@gila-pc:~/Scrivania$


Sembrerebbe davvero andare più veloce a processi. Forse davvero non ho un core solo.
A sto punto non so bene nemmeno io.
Qui altre informazioni se può servire:
HTML
gila@gila-pc:~/Scrivania$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 16
model : 5
model name : AMD Athlon(tm) II X4 640 Processor
stepping : 3
microcode : 0x10000c8
cpu MHz : 800.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save
bugs : tlb_mmatch fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2
bogomips : 6027.17
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

processor : 1
vendor_id : AuthenticAMD
cpu family : 16
model : 5
model name : AMD Athlon(tm) II X4 640 Processor
stepping : 3
microcode : 0x10000c8
cpu MHz : 2300.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save
bugs : tlb_mmatch fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2
bogomips : 6027.17
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

processor : 2
vendor_id : AuthenticAMD
cpu family : 16
model : 5
model name : AMD Athlon(tm) II X4 640 Processor
stepping : 3
microcode : 0x10000c8
cpu MHz : 800.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save
bugs : tlb_mmatch fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2
bogomips : 6027.17
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

processor : 3
vendor_id : AuthenticAMD
cpu family : 16
model : 5
model name : AMD Athlon(tm) II X4 640 Processor
stepping : 3
microcode : 0x10000c8
cpu MHz : 800.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt hw_pstate vmmcall npt lbrv svm_lock nrip_save
bugs : tlb_mmatch fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2
bogomips : 6027.17
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm stc 100mhzsteps hwpstate

gila@gila-pc:~/Scrivania$


EDIT:

purtroppo non mi ha mantenuto l'identazione degli script, ma sono 2 righe, dovrebbe essere chiaro lo stesso
view post Posted: 8/1/2020, 06:12 Perplessità processi (c,java,python, generico) - Informatica.
Sta sera se riesco, posto i 2 programmini di prova e da terminale ubuntu controllo l'hardware
view post Posted: 7/1/2020, 22:27 Perplessità processi (c,java,python, generico) - Informatica.
Intendo dire, che a logica avendo un processore solo, la simultaneita' dovrebbe essere apparente. Come dicevo, in base alle priorita', fa il processo 1, poi stacca , fa un po' del 2 e via dicendo. Ma la somma dei tempi dei processi in definitiva dovrebbe essere la stessa del modo sequenziale.
Sempre inteso che si abbia un solo processore.
Per testare cio' ho fatto un programma classico con 2 funzioni, e ho testato il tempo totale, poi gli stessi calcoli, ma al posto delle 2 funzioni 2 processi. Se, come credevo io, e solo un'illusione di contemporaneita' il programma classico e quello a processi, piu' o meno dovrebbero impiegare lo stesso tempo.
Invece salvo abbagli, quello a processi, risulta davvero piu' veloce,facendo cadere la mia tesi della finta simultaneita'.
E ripeto, sarebbe logico con piu' core, ma con un solo ?
E' come se con un pic, tutto via software, vuoi fare 2 cose contemporaneamente. Se non hai moduli hardware indipendenti, alla fine i tempi sono la somme delle 2 routines...anzi calcolando i salti a funzione, nemorizzazioni ecc...risulterebbero addirittura maggiori.
Se invece ti aiuti ad un modulo hardware, esempio il famoso timer, e' come se lo potessi equiparare a un secondo core. Ti da davvero una mano in contemporanea. Questo non mi spiego.
Riguardo bene i 2 programmi, magari prendo fischi per fiaschi
view post Posted: 7/1/2020, 21:49 Perplessità processi (c,java,python, generico) - Informatica.
Leggo bene con cura, appena riesco, mi era sfuggito. Devo assimilare un po'.
Comunque ho provato a fare la prova che dicevo: 2 funzioni sequenziali chiamate dal main e 2 processi...calcoli identici.
Ebbene, pur avendo un processore solo in effetti i tempi dei processi sono molto minori...e non mi spiego!!!
Molto probabilmente devo rileggere bene ciò che hai scritto e troverò la risposta.
Appena ho tempo, giusto per chiarezza, posto i 2 esempi (4 righe stupide di codice, nulla di che)
view post Posted: 6/1/2020, 22:07 pwm con ne555 e mosfet - Elettronica generale
Se non ricordo male il pin5 varia la tensione d'uscita o la frequenza, in base (anche qui non ricordo) a una frequenza o una tensione in entrata. Di norma quindi se un pin non e' usato, lo si divrebbe forzare a un livello ligico ben definito, non cosi' al c. Di cane, potrebbe captare impurita' e fare quello che gli pare.
Se non ricordo male anche qui, se hai per esempio un'alta impedenza d'ingresso puo' risultare molto sensibile.
Scherzi assurdi li fanno gli operazionali, che infatti hanno un'alta impedenza d'ingresso.
Ma sentiamo gli esperti.
Poi Doc...puoi fare mille circuiti e mettere il pin x a massa e stai tranquillo che filrebbe tutto liscio anche lasciandolo flottante. Il 1001 circuito te ne infischi dicendo: ma si, funziona lo stesso che stai tranquillo che te a piji ner cuxx...insomna ci siamo capiti
view post Posted: 6/1/2020, 21:09 Perplessità processi (c,java,python, generico) - Informatica.
Ciao a tutti, stavo parlando con Dario nella discussione toni DTMF, e si è nominato di striscio, i processi
,therad e via dicendo.
Una cosa non ho mai capito fin da quando li ho studiati (o Dio studiati, non li so padroneggiare bene):
Con un processo che in C otteniamo con fork(), ho la possibilità di svolgere (detto un po' così casereccio) 2 operazioni o
più contemporaneamente.
In un programma "tradizionale", abbiamo il main, che può richiamare una funzione, la svolge, ritorna e poi passa alla successiva, fino terminare. Oppure una funzione che chiama un'altra funzione ecc...ma è comunque sequenziale.
Fai funzione 1,poi 2, poi 3, e poi di norma si torna al main, che terminando con return 0, se non erro , restituisce il controllo al sistema operativo.

Nei processi, invece abbiamo la "contemporaneità" la funzione f2, non ha bisogno che f1 termini, vanno insieme.
Ora la mia domanda è questa: nei pic per esempio so che ci sono moduli hardware che vanno davvero indipendentemente,
se non ricordo male nella serie 16F i timer sono hardware. Puoi fare un loop infinito e far partire il timer e il timer non sarà mai congelato in un loop infinito, fa quello che deve fare, poi, sei tu a testare quello che ti serve con interrupt, polling, quello che è.
Se dico castrate perdonatemi, sono passati un po' di annetti.
Ma torniamo al C su un pc. Se io ho 2,3,4 processi, ma il processore è uno solo, come nel mio caso un pc un po' datato,
la "contemporaneità" non è un' illusione?
So che esistono vari tipi di algoritmi di scheduling, gestiti dal sistema operativo che danno priorità a questo o quel processo in base a...in base a??? Non lo so!! :D :D

Ma non rimane pur sempre un'illusione ? Faccio un poco del processo 1, poi stacco faccio metà del 2, poi torno a 1.
Se hai un pc con più core allora si possono smazzare i compiti, ma con uno solo ?
Potrei provare a fare un test: 2 funzioni un po' gravose (calcoli un po' pesanti) una dopo l'altra e le stesse funzioni farle
dopo una fork e misurare i tempi.
Non so, purtroppo come sapete non ci lavoro con queste cose, e l'hobby ha molti limiti.
Grazie in anticipo per chi avesse voglia e interesse a schiarirmi le idee.

Come sempre la sintesi non è nelle mie corde :P :wb:
view post Posted: 6/1/2020, 18:06 Toni DTMF - Informatica.
CITAZIONE
Be' in pratica non ti servono 2 thread perché windows ti manda dei messaggi "WOM_DONE" (se non ricordo male) quando un buffer è pieno e puoi usarlo: così, tu gestisci il messaggio facendo partire la FFT sul buffer vecchio e passando alla scheda audio il buffer nuovo. E la cosa si ripete in alternanza, di continuo. Se, per dire, usi buffer adatti a 100mS di audio, che direi abbastanza ok per il DTMF, a 22KHz 8bit mono ... devi fare la FFT su 2KByte e direi che 100mS son più che sufficienti!
(al "primo giro" apri la periferica, prepari i 2 buffer e li passi entrambi alla scheda audio: da lì in poi, fai come detto sopra)

Posso mandarti del codice che avevo scritto ormai molto tempo fa, in C++ per Windows: ne ho fatte 2 o 3 di applicazioni di questo tipo

Ultimamente uso Ubuntu, quindi di API e via dicendo non so nulla...purtroppo, e anche il tempo a disposizione per esperimenti è poco. Comunque grazie, tengo a mente nel caso volessi migliorare il progetto.

CITAZIONE
odio python et similia :) ma ok!

Inizialmente anche io la pensavo così. Logicamente credo che per microcontrollori sia improponibile.
A dire il vero, da quel che ricordo, a volte pure il C fa sentire i suoi limiti per i micro e si deve ricorrere l'assembly.
Però ho notato che anche col C per la programmazione da pc (diciamo) ha i suoi limiti. Su certe cose rischi d'impazzire.
Che so, ho provato a vedere GTK in c, è un massacro.
Python, sembra un linguaggio ben fatto, ad oggetti, e con una documentazione esagerata in rete.
Ti sgrava molte cose del C, non so penso a set() che sotto il cofano implementa tabelle di hash, che in C sono parecchie righe di codice.
Certo, ti maschera cosa gira sotto il cofano, ma del resto lo fa anche il C con l'assembly.
Poi dipende, io sono solo un hobbista, che sta studiando Python a tempo perso.
Grazie comunque dell'interessamento, se voglio riprendere il progetto, so dove trovarti.
view post Posted: 6/1/2020, 16:15 Toni DTMF - Informatica.
Ah ok , tu dici per l'acquisizione diretta da scheda audio...che già richiede un po' di studio.
Due buffer ? Correggimi se sbaglio: ma se faccio la fft e contemporaneamente devo leggere, implica l'utilizzo dei
processi o thread giusto ? (non argomenti banali nemmeno questi)
Bhè ormai ci rifletto soltanto nel senso che ora come ora vorrei proseguire col python.
però sono curioso di sapere cosa intendi
view post Posted: 6/1/2020, 15:35 Toni DTMF - Informatica.
Si Dario, a livello hardware penso sia più prestante e veloce da fare, come aveva proposto anche Robo67.
Purtroppo come ho detto ultimamente ho messo tutto in cantina.
La sfida era a livello software, in questo caso il C.
Ma le problematiche erano parecchie.
Ti riassumo, sempre che tu abbia voglia\interesse:
La cosa migliore sarebbe stata acquisire direttamente da scheda audio e analizzare "interattivamente" tono per tono.
Problemi:
a) non so bene gestire la scheda audio, o meglio ho trovato una libreria, ma dovrei studiarci sopra.
b) non è detto che tra un tono e l'altro (se molto ravvicinati) abbia il tempo di elaborare una fft.
pur essendo velocissima la FFT3 che uso, potrebbe non farcela.
il C è veloce, ma mai quando un hardware dedicato.

Allora per ovviare, registro come WAV e poi analizzo.
Ma anche qui sorgono problemi: non sapendo gestire il fattore tempo nella fft (ed è possibile, altrimenti sarebbe impossibile
fare una FFT inversa, da spettro->traccia), mi trovo lo spettro completo dei toni.
supponiamo 3 toni, avrò 3 frequenze più ampie e 3 meno ampie.
Ma sul grafico (appunto non sapendo gestire il tempo), mi troverò le 3 più ampie vicine e le 3 minori anch'esse vicine.
Perdo in definitiva la sequenza d'entrata.
Allora per ovviare, faccio piccole finestre temporali e da li la FFT, ma capirai benissimo che sono legato al tempo di durata
del tono. Se non lo rispetto ,potrei avere una finestra mozza: metà di tono e metà di silenzio/rumore.
E molti altri problemi ancora.
Come saprai meglio di me, programmando si riscontrano sempre nuovi imprevisti, che sulla carta mai ci penseresti.
Restando a tempi medi (più o meno come quelli di autocomposizione dei telefoni) , ci siamo.
Se accorcio o allungo tutto no.
Se faccio un singolo tono (per esempio) che dura 5 secondi, il mio programma non funziona.
Va bhè, è stato un bell'esercizio comunque.
Dovrei seriamente capire come legare il tempo alla FFT, io l'ho sempre e solo usata per ricavarne lo spettro.
Quella inversa l'ho usata da libreria, ma presa e usata, non so come e il perchè di come operi.
view post Posted: 6/1/2020, 12:06 Toni DTMF - Informatica.
Mi è ricapitato sotto mano questo post. Il progetto poi si era un po' arenato.
Nel senso che il programma C che ho postato funzionava benone con sample rate noto a priori e durata toni e pause
anch'essi noti.
Se accorcio la durata dei toni oppure il tempo di pausa non funziona a dovere.
Il problemi sono molteplici: non è facile fare un buon algoritmo che riconosca bene il silenzio tra un tono e l'altro...e molte altre cose
ancora che ho esposto.
Oltretutto la mia ignoranza in fatto di FFT si fa sentire.
La uso per individuare i picchi e la natura della loro frequenza, ma non riesco a mettere in relazione il tempo.
Senza entrare in dettagli, questo mi porta a stratagemmi abbastanza assurdi.
Diciamo che il mio programma va e non va.
view post Posted: 5/1/2020, 20:08 pwm con ne555 e mosfet - Elettronica generale
Se non ricordo male, su un "librone" di fare elettronica era postato lo schema con NE555, ma come ben saprai è da tempo che non
"opero" :D più. Proverò a cercare comunque.
Mi pare di capire però che il tuo problema è la parte di potenza, quella relativa al mosfet.
Domanda: non vedo nulla per poter variare il pwm però...una resistenza variabile, o che so io .

EDIT: no, no ho visto dove vai a variare, non avevo notato
view post Posted: 4/1/2020, 19:59 allora mi presento anche io - Informazioni sul forum,presentazione.
Benvenuto Dario...io arrivo sempre con l'ultimo treno. Mi pare di capire che "smacchini" parecchio. T'invidio un po' ...
Tra lavoro e tutto io mi sono arenato...va bhè
1581 replies since 4/11/2007