J'essaye de faire marcher l'ADC sur un PIC24FJ64GB202 mais comme je ne l'ai pas encore reçu, je ne sais pas si ce que j'ai fait devrait fonctionner...
J'essaye tout simplement de faire passer l'état d'une broche à 1 si la tension appliqué à une broche réglée en analogique est superieur ou égal à 2V:
Code : Tout sélectionner
int main(void)
{
// initialize the device
SYSTEM_Initialize();
int conversion;
ADC1_Initialize();
ADC1_ChannelSelect(ADC1_CHANNEL_AN0);
ADC1_Start();
//Provide Delay
for(int i=0;i <1000;i++)
{
}
ADC1_Stop();
while(!ADC1_IsConversionComplete())
{
ADC1_Tasks(); //on baisse le flag
}
conversion = ADC1_ConversionResultGet();
if (conversion >2)
{
PORTA = 0x10;
}
while (1)
{
// Add your application code
}
return -1;
} Le problème, c'est que je me sert de code configurator pour gagner du temps, j'ai quasiment recopié l'exemple donné mais la fonction ADC1_ConversionResultGet() me parait louche parceque le commentaire semble indiqué une tout autre utilité à la fonction que de récupérer le résultat de la valeur:
Code : Tout sélectionner
@Summary
Returns true when the conversion is completed
@Description
This routine is used to determine if conversion is completed. This routine
returns the value of the DONE bit. When conversion is complete the routine
returns 1. It returns 0 otherwise.
@Preconditions
ADC1_Initializer() function should have been
called before calling this function.
@Returns
Returns true if conversion is completed
@Param
None
@Example
Refer to ADC1_Initializer(); for an example
*/ mais le code lui semble indiquer que la fonction renvoie la valeur d'un registre
Code : Tout sélectionner
uint16_t ADC1_ConversionResultGet(void)
{
return ADC1BUF0;
} du coup je me dit que c'est peut être le commentaire qui est faux .
Qu'en pensez vous ?

