Ejecutar un programa en un chip PICKit 2

0

Tengo un PICKit 2 con un chip PIC16F690 conectado, instalé MPLAB e hice un programa de muestra en C, que se compila bien. Sin embargo, solo existe la opción de "Programar en el dispositivo de destino", "Leer del dispositivo de destino" o algunas otras opciones para borrar la memoria, todo lo cual funciona bien, pero no puedo averiguar cómo hacer que el programa se ejecute. el chip. MPLAB dice que no puedo depurar el chip:
"PK2Error0028: no se puede entrar en el modo de depuración"
"NOTA: este dispositivo requiere un encabezado ICD para la depuración. Consulte" Especificación de encabezado "DS51292". Después de algunas investigaciones, al parecer necesito una placa de interfaz diferente para depurarlo.
Al depurar, aparece la opción de ejecutar el programa, pero cuando se configura en el modo "Liberar", solo da la opción de leer / escribir / borrar del tablero. ¿Cómo puedo ejecutarlo?

El código es el siguiente:

#include <htc.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char** argv) {
    return (EXIT_SUCCESS);
}

Que en realidad todavía no hace nada

    
pregunta Matthew

3 respuestas

1
  

"PK2Error0028: No se puede entrar en el modo de depuración"

¿Es un auténtico PICkit2? Muchos clones baratos no pueden depurar.

Cuando programa el chip, coloca el código en el chip. Cuando no está programando el chip, si MCLR no se mantiene bajo, el programa se está ejecutando. No "ejecuta" el programa, solo se ejecuta a menos que se le indique específicamente que no lo haga.

    
respondido por el Majenko
1

Necesitas lo que Microchip llama un "encabezado de depuración" para depurar este chip. El encabezado de depuración saca todos los pines de E / S del chip para su uso e incluye pines adicionales que se conectan al depurador (PICkit o ICD).

La forma más fácil de ver si tu chip está funcionando es incluir algunas rutinas de parpadeo de LED muy simples y ver qué sucede cuando ejecutas el chip solo con la fuente de alimentación y los LED.

Asegúrese de mantener MCLR HI al probar su código de parpadeo.

    
respondido por el Dwayne Reid
1

¿Qué hay para correr? Su programa comienza y sale inmediatamente. El programa incrustado nunca debe salir de main. En su lugar, siempre debería haber algún tipo de bucle infinito.

Algo como esto:

#include <htc.h>

void init_io()
{
    // init timer(s) here

    // init an I/O pint for output here
}

int main()
{
    init_io();
    while (1)
    {
        // set i/O pin high
        // wait 1/2 second
        // set i/o low
        // wait 1/2 second
    }
}

Luego puede mirar el pin de E / S con un alcance, conectarlo a un multímetro o encender un LED.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas