Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - passaggio di puntatore a void che non funzionano
Forum - C/C++ - passaggio di puntatore a void che non funzionano

Avatar
tebron (Normal User)
Newbie


Messaggi: 3
Iscritto: 17/06/2011

Segnala al moderatore
Postato alle 16:14
Venerdì, 17/06/2011
Salve,

vorrei sottoporre la mia domanda a voi esperti di c
poichè sono un principiante e non sò come risolvere il problema.

Ho una funzione che accetta come parametro un puntatore a void,
io gli devo passare un valore di uno o zero per accendere o spegnere un
led. Ho provato il codice sottostante ma, anche se il compilatore non da errori in realtà il  valore nella variabile bLed rimane sempre a zero.
Potete darmi indicazioni in merito per far funzionare la routine?

Grazie.

main(void)
{
    while(1)  
    {
        TaskLedUno((BOOL*)1);
     }
}

void TaskLedUno(void *pFlagLed)
{

BOOL  bLed;

//while(1)
{
  
   bLed=*(BOOL*)pFlagLed;
   pLED_1(bLed);
}
}

PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
0
Down
V
Segnala al moderatore
Postato alle 17:03
Venerdì, 17/06/2011
a parte il disastro da puntatori/valori/indirizzi, ma la funzione pLED_1 com'è dichiarata?

EDIT (dopo commento):

ma perchè non fare semplicemente pLED_1(1) ?

dovrebbe essere un toggle, non serve il ciclo infinito!

Ultima modifica effettuata da HeDo il 17/06/2011 alle 18:16
la dichiarazione della funzione è la seguente: void TaskLedUno(void *pFlagLed); - tebron - 17/06/11 17:41
#define _pLED_1 GPIO_PIN_1 #define _pLED_2 GPIO_PIN_2 #define _pLED_3 GPIO_PIN_3 #define pLED_1(b) (b==0 ? GPIOPinWrite(GPIO_PORTA_BASE, _pLED_1, ~_pLED_1):\ GPIOPinWrite(GPIO_PORTA_BASE, _pLED_1, _pLED_1)) - tebron - 17/06/11 17:46
PM