Autor Tema: iniciandome con pic12f675 - No responde  (Leído 3343 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mgaldeano

  • PIC10
  • *
  • Mensajes: 3
iniciandome con pic12f675 - No responde
« en: 20 de Febrero de 2011, 11:54:28 »
Hola.
Estoy tratando de hacer funcionar un pic 12f675. Por el momento no he logrado ni siquiera encender un led (menos que parpadee). Estoy usando linux, un ide (Piklab 0.15.7), compilador sdcc y un programador directo (JDM). Escribo el codigo que muestro al final, compila sin errores ***Exito***. Doy progrmar y "quema" bien al pic. (para verificarlo pruebo luego "leer" y recupera los datos). conecto luego el pic en un protoboard, alimento con 5v (de una fuente de pc) a los pin 1 y 8. Supongo que debería tener un 1 en el pin 5 y que con un led y una resistencia (330 ohm) a masa se debería encender el led (el resto de los pines sin conectar). No sucede. ¿Alguien tienen una idea de que está mal?. Probé también con otro chip, por si este estuviese mal.
Gracias de antemano-
Martín




Codigo:


/* ----------------------------------------------------------------------- */
/* Plantilla generada por Piklab */
#include <pic12f675.h>

/* ----------------------------------------------------------------------- */
/* Bits de configuración: adapte los parámetros a su necesidad */

typedef unsigned int word;
word at 0x2007 CONFIG = _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _BODEN_OFF & _CP_OFF & _CPD_OFF;

#define CLOCK_SPEED 4000000
void retardo();

void isr() interrupt 0 {                                                                                       /* rutina de servicio de interrupciones */
    /* << agregue el código de interrupción >> */
}

void main() {
GPIO=0;
for (;;){
GP2=1;
}

}

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: iniciandome con pic12f675 - No responde
« Respuesta #1 en: 20 de Febrero de 2011, 12:33:24 »
  No uso sdcc pero ¿GPIO = xx no sería para poner una salida en dicho puerto?

  En HiTech para configurar el puerto hay poner, por ejemplo, TRISIO = 0. Para saber eso tendrías que consultar el datasheet y el .h del pic que estés usando.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: iniciandome con pic12f675 - No responde
« Respuesta #2 en: 20 de Febrero de 2011, 12:36:32 »
NO se si tu compilador configure el TRIS , pero te falta desactivar los comparadores y cambiar los pines de analogico a digital.

En su hoja de especificaciones viene todo claro.
« Última modificación: 20 de Febrero de 2011, 12:38:53 por AKENAFAB »

Desconectado mgaldeano

  • PIC10
  • *
  • Mensajes: 3
Re: iniciandome con pic12f675 - No responde
« Respuesta #3 en: 20 de Febrero de 2011, 13:36:18 »
Gracias AngelGris.
TRISIO=0; es la forma de inidcar que el GPIO es salida. Está funcionando.
Ahora ya me animé y cambé lo siguiente:

Este prog hace titilar el pin 5 del pic 12F675 (también lo probé y funciona)


/* ----------------------------------------------------------------------- */
/* Plantilla generada por Piklab */
#include <pic12f675.h>

/* ----------------------------------------------------------------------- */
/* Bits de configuración: adapte los parámetros a su necesidad */

typedef unsigned int word;
word at 0x2007 CONFIG = _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _BODEN_OFF & _CP_OFF & _CPD_OFF;

#define CLOCK_SPEED 4000000
void retardo();

void isr() interrupt 0 {                                                                                       /* rutina de servicio de interrupciones */
    /* << agregue el código de interrupción >> */
}

void main() {
TRISIO=0;
for (;;){
GP2=1;
retardo();
GP2=0;
retardo();
}

}

void retardo(){
int conteo;
for (conteo=0;conteo<20000; conteo ++)
{
}
}