Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-06-2009, 12: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 12:32.
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 12: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, 12: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, 12: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 12:47.
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 12: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 12:55.
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 12: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 13:02.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 13: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, 13: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, 13: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, 14: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 16:38.
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2009, 15: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 16:38.
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2009, 11: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, 11: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, 11: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 15:47. Motivo: corretto errore di battitura....^^
lefermops è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2009, 12: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, 15: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


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Samsung conferma l'arrivo di tre variant...
Sottile, veloce e con un'ottima autonomi...
Il top di gamma compatto di OnePlus &egr...
Modificare l'indirizzo Gmail è finalment...
Perché le GeForce RTX con pi&ugra...
Più tempo online non equivale a più disa...
Amazon Weekend: iPhone 17 Pro, robot asp...
TV OLED 65'' top di gamma al 50%: 144Hz,...
Londra si prepara al terremoto 'intellig...
Scope elettriche in offerta su Amazon: f...
iPhone 17 Pro a un nuovo minimo storico ...
DJI Mini 4 Pro Fly More Combo a 859€ su ...
Roborock in offerta su Amazon: QV 35A e ...
Crisi della RAM: Intel rassicura sul mer...
Dreame taglia i prezzi su Amazon: L40 Ul...
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: 21:21.


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