Community
cancel
Showing results for 
Search instead for 
Did you mean: 
idata
Community Manager
1,800 Views

Segmentation fault

Buen día,

Estoy trabajando con una Intel Edison con la cual intento leer el puerto analógico A0 con el siguiente código:

# include

# include

using namespace std;

mraa_aio_context port0;

floar Vin = 4.76;

float Read(int Samples);

int main()

{

port0 = mraa_aio_init(0);

cout<<"Voltaje Temperatura"<<endl;

while(true)

{

float VoltageAverage = Read(500);

float Temperature = VoltageAverage*100;

cout<<"---------------------------"<<endl;

cout<<VoltageAverage<<" "<<Temperature<<endl;

sleep(1);

}

mraa_aio_close(port0);

return MRAA_SUCCESS;

}

float Read (int Samples)

{

float Voltage, Average;

for (int i=0; i

{

Voltage = mraa_aio_read(port0) * (Vin/1024.0);

Average = Average + Voltage;

}

Average = Average/Samples;

return (Average);

}

Básicamente, mediante la función "Read" hace un muestreo del voltaje leído en el puerto 0, al llamar esta función dentro de la función "main", lo convierte a temperatura. En un principio si funcionaba, ahora solo logro que compile, pero al correrlo me aparece "Segmentation fault". Como se puede observar en la imagen siguiente, el programa corre hasta llegar al punto donde se llama a la función encargada de leer el puerto.

Leí un poco acerca de este problema, y al parecer es algo relacionado con los permisos para entrar a la memoria, sin embargo no se como solucionarlo. Si alguien conoce del tema, o ha tenido un problema similar, sería de mucha ayuda si pudiera orientarme.

Muchas gracias de antemano,

-Marisol Carmona

0 Kudos
4 Replies
KMill10
Valued Contributor II
38 Views

Ha comprobado el valor de retorno de "mraa_aio_init"?

idata
Community Manager
38 Views

Hi Marisol,

 

 

Thanks for contacting us!

 

 

I appreciate all the information provided. I was able to compile and run your code (only change this line from floar Vin = 4.76; to float Vin = 4.76;) and I have not gotten the error "Segmentation fault". I would like to know which mraa version you are using, you can get it running this command: mraa-gpio version, also you can check the return value as SpiderKenny has mentioned.

 

 

Regards,

 

-Yermi A.

 

idata
Community Manager
38 Views

Hi Marisol,

 

 

I would like to know if you have any updates in this case, and also if you can provide the information requested.

 

 

Regards,

 

-Yermi A.

 

idata
Community Manager
38 Views

Buen día,

Me disculpo por la demora y agradezco su pronta respuesta. Les comento que al siguiente día de haber tenido la falla en cuestión, realicé las conexiones para tratar de solucionarlo y para mi sorpresa ya funcionaba. No sé a qué se deberá, pero si en algún momento llego a tener el mismo error, sin duda seguiré sus consejos. Muchas gracias a ambos!

Saludos cordiales,

-Marisol Carmona

Reply