Autor
|
Tema: Violación de segmento de código en c++ (sin punteros) (Leído 2,847 veces)
|
juligarc10
Desconectado
Mensajes: 47
|
Buenas tardes a todos. Me estoy iniciando en el mundo de la programación y me he propuesto encender un led con una Raspberry Pi. He diseñado el código ayudándome de algún libro y de internet, pero a pesar de que el código compila, una vez intento ejecutarlo me da un error que dice: Violación de segmento. Aquí os dejo el código, aunque yo no consigo ver el error.
#include <wiringPi.h>
#include <iostream>
int main(void){ wiringPiSetup(); pinMode(12, OUTPUT); int i=0; for(i=0;i<10;i++){ digitalWrite(12, HIGH); delay(500); digitalWrite(12, LOW); delay (500); } return (0); }
PD: La librería wiringPi ya la he instalado, creo que el fallo no se debe a eso.
Un saludo, gracias.
|
|
|
En línea
|
|
|
|
EdePC
|
Saludos,
- De donde sale ese 12? existe? debes utilizar ese número o quizá algún otro? quizá uno menor ...
|
|
|
En línea
|
|
|
|
juligarc10
Desconectado
Mensajes: 47
|
Saludos,
- De donde sale ese 12? existe? debes utilizar ese número o quizá algún otro? quizá uno menor ...
Hola, Si no me equivoco es el pin positivo de la raspberry, al que conecto el led. No se si trabajaron alguna vez con la Raspberry, pero cada pin tiene asignado un número. Lo que no se es si lo he planteado bien, pero el 12 viene de que el pin nº 12 es el que ofrecerá una corriente positiva a mi led. Si buscan en google imagenes "Pines raspberry pi 3" podrán ver el esquema de la raspberry. Gracias. Saludos.
|
|
|
En línea
|
|
|
|
CalgaryCorpus
|
Sugerencias:
- Escribe aqui el error completo que te aparece, no solo una parte. Tal vez el error completo da más indicios del problema y al recortarlo haces mas difícil adivinar que problema tienes. - pon el comando que usas para ejecutar tu programa. Lo escondido de esta sugerencia es que leí que tiene que ejecutarse con sudo, y tal vez no lo has hecho así.
|
|
|
En línea
|
|
|
|
EdePC
|
- Lo digo porque la Violación de Segmento se da normalmente porque se está haciendo referencia a un lugar que no existe, no se tiene permiso, está fuera del alcance. - Con el código que has dado, me da a entender de que ese 12 está fuera del alcance. Pero no soy experto ni he tocado un Raspberry . Solo es lo que me da a entender.
|
|
|
En línea
|
|
|
|
juligarc10
Desconectado
Mensajes: 47
|
Sugerencias:
- Escribe aqui el error completo que te aparece, no solo una parte. Tal vez el error completo da más indicios del problema y al recortarlo haces mas difícil adivinar que problema tienes. - pon el comando que usas para ejecutar tu programa. Lo escondido de esta sugerencia es que leí que tiene que ejecutarse con sudo, y tal vez no lo has hecho así.
Hola, Estoy ejecutando el programa desde el cmd de raspbian (el sistema operativo que tiene instalado la RPi. Cuando creo el código, lo creo en un "bloc de notas" cuya extensión final es .cpp. A continuación, cuando quiero compilar el código desde cmd escribo "g++ -Wall -o led led.cpp -lwiringPi" (led es el nombre del archivo bloc de notas". El archivo compila perfectamente, pero cuando lo ejecuto escribiendo en cmd "sudo ./led", la única respuesta que el cmd me da es "Violación de segmento", nada más. No se si así te puedo orientar algo más... Un saludo y gracias.
|
|
|
En línea
|
|
|
|
juligarc10
Desconectado
Mensajes: 47
|
- Lo digo porque la Violación de Segmento se da normalmente porque se está haciendo referencia a un lugar que no existe, no se tiene permiso, está fuera del alcance. - Con el código que has dado, me da a entender de que ese 12 está fuera del alcance. Pero no soy experto ni he tocado un Raspberry . Solo es lo que me da a entender. Hola, Te entiendo, pero normalmente cuando tu especificas un lugar concreto en memoria, estás usando punteros. Yo aquí no los uso. El 12 ese en teoría no tiene nada que ver con la memoria, es simplemente el número que tiene asociado ese determinado pin de la Raspberry, y por el cual le indico a mi programa que ese pin será el que vaya a "emitir" corriente positiva y no cualquier otro, ya que el 12 será al que tendré conectado mi led. No se si me he explicado o es que soy yo quien no te entiende a ti. De todas formas muchas gracias.
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
¿Y si wiringPiSetup falla? La función, según cuentan aquí ( http://wiringpi.com/reference/setup/) devuelve un valor de retorno indicando si hay error. Deberías usar eso antes de continuar con tu programa.
|
|
|
En línea
|
|
|
|
juligarc10
Desconectado
Mensajes: 47
|
¿Y si wiringPiSetup falla? La función, según cuentan aquí ( http://wiringpi.com/reference/setup/) devuelve un valor de retorno indicando si hay error. Deberías usar eso antes de continuar con tu programa. Hola, Perdona, no entiendo a que te refieres con "usar eso antes de continuar con tu programa" .
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
En que mires si se ha producido un error durante el setup. Sí ocurre detener el programa o hacer algo. Igual que cuando pides memoria con malloc o new y te devuelven NULL.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema con violación de segmento
« 1 2 »
Programación C/C++
|
Triper0
|
17
|
17,221
|
8 Noviembre 2015, 21:34 pm
por alesurf1989
|
|
|
ayuda violacion de segmento?
Programación General
|
nightcode
|
7
|
4,477
|
31 Diciembre 2013, 18:32 pm
por nightcode
|
|
|
Violación de Segmento
Programación C/C++
|
Jaquieline_JJ
|
1
|
2,290
|
24 Abril 2014, 04:11 am
por engel lex
|
|
|
Violacion segmento en C Linux
Programación C/C++
|
Xin_J.D
|
2
|
2,621
|
31 Marzo 2018, 00:33 am
por BloodSharp
|
|
|
Violación de segmento en sockets
« 1 2 »
Programación C/C++
|
e
|
10
|
4,427
|
17 Julio 2018, 20:50 pm
por e
|
|