I would like to use ADC1 in my PIC32MZ1024ECG.
This is my source code:
Code: Select all
void main() {
//ANS
ANSELF.RF0 = 0; //digi
ANSELF.RF1 = 0; //digi
ANSELE.RE8 = 1; //analog (AN25)
//TRIS
TRISF.RF0 = 1;
TRISF.RF1 = 0;
TRISE.RE8 = 1; //an input
//Uart settings
Unlock_IOLOCK();
PPS_Mapping_NoLock(_RPF0, _OUTPUT, _U1TX); //Uart1(RPF0 - U1TX)
PPS_Mapping_NoLock(_RPF1, _INPUT, _U1RX); //Uart1(RPF1 - U1RX)
Lock_IOLOCK();
//end
//inits
ADC1_Init();
UART1_Init(115200);
delay_ms(100);
while (1)
{
if (UART1_Data_Ready())
{
char a[230];
if (UART1_Read() == 'k')
{
//unsigned int i = (unsigned int)ADC1_Read(25);
sprintf(a, "%u\r\n", ADC1_Read(25));
UART1_Write_Text(a);
}
}
}
return;
}
The value returned should represent the measured value, not random values.
Maybe I missed something?