Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5 introduce Dynamic Multi Frame Generation e MFG 6X, permettendo fino a cinque frame generati per ogni frame renderizzato. I test su Cyberpunk 2077 e 007 First Light mostrano forti incrementi di FPS e riduzione della latenza su RTX 5090 Laptop. Migliorano fluidità, stabilità e qualità visiva.
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-06-2009, 11:23   #1
lefermops
Junior Member
 
L'Avatar di lefermops
 
Iscritto dal: Jun 2009
Messaggi: 18
[C] problemi

sto passando dall'assembler al C. forse sono ancora troppo rivolta al basso livello ....
non riesco a controllare se un parametro è o meno nel range... ho fatto e rifatto quella routine in mille modi, ma non riesco a capire....

richiamo una procedura di controllo, faccio il controllo, poi al ritorno il test una scelta. sono stata attenta e mi pare che sia semplice....dovrebbe andare liscio, invece non funziona ç_ç

Codice:
long controllo(long param1, long param2)
{        //passabanda!!!! -->  1<param1<25 
timer = 200;  // carico timer = 2 secondi
// se param1 > 25 -> overbanda + se param <1  -> underbanda
if ((param1 >25) && (param1<1))  
    {
      scrivo_errore();    //scrivo "errore" a video
     param2 = 21;         //segnalo errore
    } 		 
else	buzzer = 1; // sono in "banda" faccio un bip!
return(param2); 	   //trasmetto param2 al main
}

[...main...]
case 5: //controllo
controllo(param);
if (tasto==x) stato =1;      //torno indietro
if (param2!=21) stato++;  //vado oltre
else break;
grazie a chi mi darà una dritta!!^^

Ultima modifica di lefermops : 17-06-2009 alle 11:32.
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 11:32   #2
Volutomitra
Member
 
Iscritto dal: Feb 2006
Messaggi: 134
Quote:
Originariamente inviato da lefermops Guarda i messaggi
if ((param1 >25) && (param1<1))
Come fa param1 a essere contemporaneamente maggiore di 25 e minore di 1?

Forse è meglio un OR...
Volutomitra è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 11:34   #3
lefermops
Junior Member
 
L'Avatar di lefermops
 
Iscritto dal: Jun 2009
Messaggi: 18
si, è un OR.... ho sbagliato a scrivere...

param1 lo setto nel main....
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 11:45   #4
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
ci sono un paio di problemi :

-la funzione controllo prende due parametri , ma tu nel main ne passi solo uno
- cosa intendi con non funziona? non compila? o non esegue quello che vuoi ?
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni

Ultima modifica di qwerty86 : 17-06-2009 alle 11:47.
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 11:52   #5
lefermops
Junior Member
 
L'Avatar di lefermops
 
Iscritto dal: Jun 2009
Messaggi: 18
a controllo passo i due parametri che nell'ordine in cui li ho dichiarati nella procedura.

il problema è che non riesco ad ottenere quello che voglio...

se metto un valore alla mia variabile fuori dalla "banda di valenza" bippa lo stesso, e funziona come se fosse il valore "buono".

Codice:
long controllo(long param1, long param2)
{        //passabanda!!!! -->  1<param1<25 
timer = 200;  // carico timer = 2 secondi
// se param1 > 25 -> overbanda + se param <1  -> underbanda
if ((param1 >25) || (param1<1))  
    {
      scrivo_errore();    //scrivo "errore" a video
     param2 = 21;         //segnalo errore
    } 		 
else if ((param1<25)&&(param1>1)) buzzer = 1; // sono in "banda" faccio un bip!
return(param2); 	   //trasmetto param2 al main
}

[...main...]
case 5: //controllo
controllo(param1, param2);
if (tasto==x) stato =1;      //torno indietro
if (param2!=21) stato++;  //vado oltre
else break;

Ultima modifica di lefermops : 17-06-2009 alle 11:55.
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 11:56   #6
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
fai restituire alla funzione un valore ma non lo assegni a niente, così lo perdi. non dovresti fare

param2 = controllo(param1, param2);

?

EDIT anche l'else if è sbagliato: devi mettere un or. inoltre se fai uso di >=, <= ti basta un else senza if.

Ultima modifica di ndakota : 17-06-2009 alle 12:02.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 12:11   #7
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da lefermops Guarda i messaggi
Codice:
long controllo(long param1, long param2)
{        //passabanda!!!! -->  1<param1<25 
timer = 200;  // carico timer = 2 secondi
// se param1 > 25 -> overbanda + se param <1  -> underbanda
if ((param1 >25) || (param1<1))  
    {
      scrivo_errore();    //scrivo "errore" a video
     param2 = 21;         //segnalo errore
    } 		 
else if ((param1<25)&&(param1>1)) buzzer = 1; // sono in "banda" faccio un bip!
return(param2); 	   //trasmetto param2 al main
}

[...main...]
case 5: //controllo
controllo(param1, param2);
if (tasto==x) stato =1;      //torno indietro
if (param2!=21) stato++;  //vado oltre
else break;
La definizione di controllo è sbagliata param2 non verrà mai ritornato al main, hai 2 possibilità:
Codice:
void controllo(long param1, long * param2)
...
//nel main
controllo(param1, &param2);
Codice:
long controllo(long param1)
...
//nel main
param2 = controllo(param1);
io preferisco la seconda
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 12:17   #8
lefermops
Junior Member
 
L'Avatar di lefermops
 
Iscritto dal: Jun 2009
Messaggi: 18
Grazie!!!!!!
adesso funziona!!!
ho assegnato il parametro al richiamo della procedura
param2 = controllo(param1, param2);
e tolto l'if all'else usando >=e<=.
grazie mille per l'aiuto!!!
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 12:20   #9
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
figurati
comunque come ti ha fatto vedere tomminno è ancora meglio, non hai bisogno di param2 nella funzione a questo punto.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 13:45   #10
lefermops
Junior Member
 
L'Avatar di lefermops
 
Iscritto dal: Jun 2009
Messaggi: 18
provo il nuovo assetto con un solo parametro....
non pensavo che fosse così difficile il passaggio da basso ad alto livello!!!

Ultima modifica di lefermops : 17-06-2009 alle 15:38.
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 14:24   #11
lefermops
Junior Member
 
L'Avatar di lefermops
 
Iscritto dal: Jun 2009
Messaggi: 18
anche con un solo parametro funziona
grazie milleeeeeeeee!!

ma ho già un secondo problema.... (ettepareva!!)

sto cercando di tarare un sensore (normalissimo ponte resistivo).
ho fatto succedere le videate...
1° ----- (sto aspettando la risposta)
2° quando il converter risponde, visualizzo tranquilla la lettura e salvo il primo valore.
fin qui tutto bene......
ma se cerco di fare la videata col secondo punto di taratura, le prime due videate non funzionano più......

Codice:
case 8: //aspetto che converter sia stabile
if(!conv) //se converter non attivo						
   {
    trattini();	// visualizzo '----' 	
   }
if (tasto==x) stato =1;      //torno indietro
if (param2!=21) stato++;  //vado oltre
else break;     	

case 9: //prendo primo punto calibrazione
vis_conv();                            //visualizzo lettura converter su video
primo_valore = lettura_conv;  //salvo lettura primo punto
if (tasto==x) stato =1;           //torno indietro
//timer = 500;		    // ricarico timer a 5 SECONDI
stato++;		                 // VADO OLTRE
BUZZER=1; 	                 // bippa
break;

case 10:                                    //prendo secondo punto calibrazione             
timer=5000;                             //carico 5 minuti
temp=100;
while (timer)     scaldo();           //porto a temperatura nota 
vis_conv();                               //visualizzo lettura converter su video
secondo_valore = lettura_conv;  //salvo lettura secondo punto
if (tasto==x) stato =1;             //torno indietro
timer = 500;		      // ricarico timer a 5 SECONDI
stato++;		                    // VADO OLTRE
BUZZER=1; 	                   // bippa
break;
il bello è che non riesco ad usare i breakpoint!!! sto imparando sia il C che ad usare il compilatore ma..... mi sa che entrambi mi detestano!!!! ç_ç

Ultima modifica di lefermops : 17-06-2009 alle 15:38.
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2009, 10:33   #12
lefermops
Junior Member
 
L'Avatar di lefermops
 
Iscritto dal: Jun 2009
Messaggi: 18
risolto.....^^
ho rifatto tutto da capo!!
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2009, 10:47   #13
malocchio
Senior Member
 
L'Avatar di malocchio
 
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
Ma per curiosità per che cosa stai programmando?
__________________
malocchio è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2009, 10:55   #14
lefermops
Junior Member
 
L'Avatar di lefermops
 
Iscritto dal: Jun 2009
Messaggi: 18
sto ri-scrivendo il firmware per una cpu che gestisce un sensore, una stampantina, una tastiera e un display....
il programma in origine è un fw di 32k in assembler intel.... solo che il processore che usavamo è stato obsoletato..... quindi ci è toccato sceglierne un altro.
il mio capo ha scelto il 430 della texas.... che dopo due mesi di remate, comincia anche a piacermi (adesso che funziona!!^^)
poi abbiamo pensato che, visto che avrei comunque dovuto imparare ad usare il nuovo assembler e il nuovo compilatore, era meglio passare al C, per avere una maggiore portabilità.... e non dover rifare sempre i sw ogni 10/15 anni quando il micro viene obsoletato!!!! (ma per me è il primo osbolamento..)
ma finalmente sono contenta!!!! il mio bambino inizia a funzionareeeeeee!!!!
__________________
"Se un giorno le api dovessero scomparire, all'uomo resterebbero soltanto quattro anni di vita" (Einstein)
Leggi e rabbrividisci.... http://www.krissnature.net/article-24864578.html
Le api sono animali tranquilli, che pensano solo ai fatti loro e hanno tanti nemici (vespe, mantidi, formiche, agricoltori che buttano troppi insetticidi).Aiutiamo le api (secondo i nostri mezzi) piantando in giardini e balconi piante mellifere come lauroceraso, lavanda, tiglio, timo, salvia, rosmarino,...

Ultima modifica di lefermops : 20-06-2009 alle 14:47. Motivo: corretto errore di battitura....^^
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2009, 11:32   #15
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
che figata. spero di trovare un lavoro come il tuo un giorno
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2009, 14:45   #16
lefermops
Junior Member
 
L'Avatar di lefermops
 
Iscritto dal: Jun 2009
Messaggi: 18
...... anch'io!!! magari anche con uno stipendio!!!
qui i soldi non girano.... e spesso siamo costretti a lavorare gratis.... ma nonostante tutto è bello, e prima o poi la crisi finirà,.... ma con 'sti cinesi che vendono a 1 euro ciò che qui in Italia costa 100, la vedo dura!!
__________________
"Se un giorno le api dovessero scomparire, all'uomo resterebbero soltanto quattro anni di vita" (Einstein)
Leggi e rabbrividisci.... http://www.krissnature.net/article-24864578.html
Le api sono animali tranquilli, che pensano solo ai fatti loro e hanno tanti nemici (vespe, mantidi, formiche, agricoltori che buttano troppi insetticidi).Aiutiamo le api (secondo i nostri mezzi) piantando in giardini e balconi piante mellifere come lauroceraso, lavanda, tiglio, timo, salvia, rosmarino,...
lefermops è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
WhatsApp annuncia la fine del supporto p...
La batteria miracolosa di Donut Lab potr...
Instagram introduce a livello globale la...
Google aggiorna Chrome: chiusa la quinta...
Il presidente è sicuro: "BYD...
La Commissione europea approva un piano ...
Roborock Qrevo Edge 2 a 699,99€: LDS ret...
Una sviluppatrice ottiene l'esenzione pe...
Oltre 340 testate locali bloccano Intern...
Un round di finanziamento da 1 milione p...
Pan-Good ha creato il motore elettrico a...
Lexar avverte: i prezzi della RAM potreb...
Intel come Apple: copia il mondo degli s...
Wolters Kluwer amplia Arca Evolution con...
Microsoft di nuovo violata: 73 repositor...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:48.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v