Pagina 1 di 3

variabile al posto di un numero per delay

MessaggioInviato: 14 mag 2013, 16:55
da ramboluis
mi servirebbe una piccola informazione:
mi trovo a sperimentare un attimino con i PIC e mi é venuto un dubbio, posso mettere al posto di un numero una variabile?
es:
facciamo che ho la variabile ''tempoled''
Codice: Seleziona tutto
while(1)
{

   
RB1 = 1;
__delay_ms(tempoled);
RB1 =0;
__delay_ms(tempoled);

}


e corretto scrivere cosi ?
naturalmente la variabile ''tempoled'' avrà un valore numerico

Re: variabile al posto di un numero per delay

MessaggioInviato: 14 mag 2013, 17:01
da posta10100
Se utilizzi un compilatore C non vedo perché non dovrebbe accettare la variabile al posto del numero.
Ti da qualche errore?

Re: variabile al posto di un numero per delay

MessaggioInviato: 14 mag 2013, 17:06
da ramboluis
no ,non ho ancora provato . volevo solo saperlo, perche se non funzionava evitavo di montare sulla scheda 3 pulsanti per modificare il valore della variabile
era giusto per non ritrovarmi con tre tastini non utilizzati :mrgreen:

Re: variabile al posto di un numero per delay

MessaggioInviato: 14 mag 2013, 17:13
da TardoFreak
Eh si, sono problemi. -:-

:mrgreen:

Re: variabile al posto di un numero per delay

MessaggioInviato: 14 mag 2013, 17:20
da nand92
nel caso non andasse puoi usare un semplice ciclo:
Codice: Seleziona tutto
void pausaVariabile(unsigned int ms)
{
    while (ms)
    {
        __delay_ms(1);
        ms -- ;
    }
}

void main()
{
    unsigned int tempoled = 10;

    // azioni ...
    pausaVariabile(tempoled);
    // altre azioni ...
    pausaVariabile(tempoled);
}


Re: variabile al posto di un numero per delay

MessaggioInviato: 14 mag 2013, 18:51
da AjKDAP
ovviamente dipende dal compilatore usato, ma generalmente i prototipi delle funzioni di delay vogliono un CONST ;-) quindi solo valori costanti.

per una possibile soluzione, quoto Foto Utentenand92 :ok:

Re: variabile al posto di un numero per delay

MessaggioInviato: 14 mag 2013, 20:04
da nand92
grazie Foto UtenteAjKDAP!
una possibile scrittura più compatta:
Codice: Seleziona tutto
void pausaVariabile(unsigned int ms)
{
    while (ms --) __delay_ms(1);
}

Re: variabile al posto di un numero per delay

MessaggioInviato: 14 mag 2013, 21:58
da TardoFreak
Senza conoscere il compilatore usato è impossibile saperlo.
I compilatori MikroC e C18 (per i PIC) hanno entrambi una variabile come argomento nel prototipo, per esempio.
Quindi io non quoto nessuno ma aspetto di sapere quale compilatore, ma sopratutto quale libreria, sta utilizzando.

Re: variabile al posto di un numero per delay

MessaggioInviato: 14 mag 2013, 22:01
da simo85
ramboluis ha scritto:posso mettere al posto di un numero una variabile?


Di che tipo è l'argomento della funzione?

Re: variabile al posto di un numero per delay

MessaggioInviato: 14 mag 2013, 23:20
da ramboluis
il compilatore che utilizzo e hi-tech c
simo85 ha scritto:
ramboluis ha scritto:posso mettere al posto di un numero una variabile?

Di che tipo è l'argomento della funzione?

sinceramente non so cosa risponderti perche non ho capito la domanda