TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: pic16f88A en 14 de Noviembre de 2013, 11:01:44
-
HOLA TENGO UN PROGRAMA:
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
int main(int argc, char** argv) {
TRISB = 255;
TRISD = 0;
while (1) {
LATD = PORTB;
}
return (EXIT_SUCCESS);
}
Y RESULTA QUE CUANDO LO PRETENDO SIMULAR EN PROTEUS, ME OCURRE ESTO....
-
Hola pic 16f88A, ¿tienes el pin de reset conectado a VDD con su resistencia? ya que parece decirte que nunca sale del reset.
Saludos!
-
Y también faltan los bits de configuración
-
Si que le conceto a VCC, la patilla que me comentabas, pero esa no es la solucion.
-
Si eres tan amable, de escribirme los bits de configuracion..... :)
-
Si eres tan amable, de escribirme los bits de configuracion..... :)
Los bits de configuración dependerán de tus necesidades... si utilizas cristal para el oscilador, poweruptimer y otras cosas que son puntuales a cada microcontrolador. Te recomiendo tener a mano siempre el datasheet del PIC que estés utilizando. Luego puedes consultar este hilo http://www.todopic.com.ar/foros/index.php?topic=40649.60 , jukinch nos muestra una forma muy cómoda de generar los bits de configuración.
-
HE INTENTADO CONFIGURAR LOS BITS COMO COMENTAS Y NO ME DA RESULTADO...
SI ME SUGIERES ALGUNA CONFIGURACIÓN EN PARTICULAR TE LO AGRADEZCO.
UN SALUDO
-
Hola de nuevo, tienes en cuenta que el PORTB lo mismo puede ser analogico que digital, y al no configurarlo como digital por defecto es analogico.
Debes configurarlo con el registro ADCON1, de todos modos en el datasheet en el apartado 10.01 pag.105 empieza la configuracion de los puertos.
On a Power-on Reset, RB<4:0> are
configured as analog inputs by default and
read as ‘0’; RB<7:5> are configured as
digital inputs.
By programming the Configuration bit,
PBADEN, RB<4:0> will alternatively be
configured as digital inputs on POR.
-
ME PARECE UN BUEN APORTE EL ANTERIOR COMENTARIO, Y TE DOY LA RAZON; PERO ESE NO ES EL FALLO......
ESTE SERIA NUEVO CODIGO:
#include <stdio.h>
#include <stdlib.h>
#include <xc.h> // Librería XC8
int main(int argc, char** argv) {
ADCON1bits.PCFG=0b1111; //ENTRADAS DIGITALES PAG 226 DATASHEET.
TRISB = 255;
TRISD = 0;
while (1) {
LATD = PORTB;
}
return (EXIT_SUCCESS);
}
LO CARGO AL PROTEUS Y EL MENSAJE ES EL MISMO:
LA CUESTION ES NO CARGAR EL .HEX EN EL PIC SI NO HACERLO DIRECTAMENTE DESDE MPLAB X, DANDOLE AL PLAY COMO SE MUESTRA EN LA 1ª
IMAGEN DEL TEMA.
-
Has cambiado la primera imagen de la simulación ¿Porque?
La primera imagen de daba fallo de reset.ME PARECE UN BUEN APORTE EL ANTERIOR COMENTARIO, Y TE DOY LA RAZON; PERO ESE NO ES EL FALLO......
ESTE SERIA NUEVO CODIGO:
#include <stdio.h>
#include <stdlib.h>
#include <xc.h> // Librería XC8
int main(int argc, char** argv) {
ADCON1bits.PCFG=0b1111; //ENTRADAS DIGITALES PAG 226 DATASHEET.
TRISB = 255;
TRISD = 0;
while (1) {
LATD = PORTB;
}
return (EXIT_SUCCESS);
}
LO CARGO AL PROTEUS Y EL MENSAJE ES EL MISMO:
LA CUESTION ES NO CARGAR EL .HEX EN EL PIC SI NO HACERLO DIRECTAMENTE DESDE MPLAB X, DANDOLE AL PLAY COMO SE MUESTRA EN LA 1ª
IMAGEN DEL TEMA.
Estas diciendo Lo cargo en el proteus y el mensaje es el mismo y la primera imagen no decia esto.
-
LA HE CAMBIADO PORQUE LO ANTERIOR IMAGEN ERA PARA CUANDO LE CARGABA EL FICHERO .HEX
FUE CULPA MIA.
PERO AHORA YA ESTA BIEN.
-
Para mí sigue siendo un problema relacionado con los bits de configuración
-
TEMA ZANJADO.
CODIGO:
#include <stdio.h>
#include <stdlib.h>
#include <xc.h> // Librería XC8
int main(int argc, char** argv) {
ADCON1bits.PCFG=0b1111; //ENTRADAS DIGITALES PAG 226 DATASHEET.
TRISB = 255;
TRISD = 0;
while (1) {
LATD = PORTB;
}
return (EXIT_SUCCESS);
}
SOLUCION: CONFIGURAR ENTRADAS COMO DIGITALES, Y CARGAR EL .HEX EN EL PIC DE PROTEUS.
SIN DUDA ALGUNA LO MEJOR