TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: dariocav87 en 26 de Septiembre de 2015, 13:58:29
-
Hola, tengo un problema al quemar con el micro. Voy a contar los pasos que hice, porque estoy entrgado...hice un programa en CCS compiler que uso el pic 12f675. Lo simule en el proteus y lo simule en el mplab y no le vi problema. Luego pongo importar en el mplab el archivo .hex. y lo quemo y me aparece el siguiente mensaje:
//------------------------------------------------------------------Mensaje 1------------------------------------------------------
PICkit 3 detected
Connecting to PICkit 3...
Running self test...
Self test completed
Firmware Suite Version...... 01.28.02
Firmware type......................Midrange
PICkit 3 Connected.
PK3Err0045: You must connect to a target device to use PICkit
3.
Device ID Revision = 0000000b
The target has invalid calibration data (0).
//-------------------------------------------------------------Mensaje 2------------------------------------------------------------------
PICkit 3 detected
Connecting to PICkit 3...
PK3Err0038: Failed to initialize PICkit 3.
Failed to properly connect to PICkit 3
//--------------------------------------------------------------Programa en CCS compiler------------------------------------------------------
//Sensor tacometro para maquina de freno de corriente parasita.
#include <12f675.h>
#use delay(clock=4000000)
#fuses INTRC_IO
#fuses NOWDT
#fuses NOPUT
#fuses MCLR
#fuses NOBROWNOUT
#fuses NOPROTECT
#fuses NOCPD
//------------------------------------------------------------------------------
#use fast_io(A)
//------------------------Definicion variables globales-------------------------
int8 k0,t0,vuelta;
int16 k;
//------------------------Definicion de pines del pic---------------------------
#define LCD_E PIN_A0
#define led PIN_A1
#define giro PIN_A2
//#define ¿¿ PIN_A3
#define LCD_CK PIN_A4
#define LCD_DAT PIN_A5
//-----------------------------Libreria LCD-------------------------------------
#include <flex_lcd_3pins.c>
//----------------------------Subrrutina Interrupciones-------------------------
//------------------------------Subrrutina TIMER0-------------------------------
#INT_TIMER0
void TIMER_isr(){
SET_TIMER0(6);
if(t0==0){
t0=250;
k=vuelta*60;
vuelta=0;
output_toggle(led);
}
else{
t0=t0-1;
}
}
//-------------------------------Subrrutina RA2---------------------------------
#INT_EXT
void EXT_isr(){
if(input(giro)==0){
vuelta=vuelta+1;
}
}
//-----------------------------Configuracion------------------------------------
void main(void){
setup_comparator(NC_NC_NC_NC);
SET_TRIS_a(0b00000100);
OUTPUT_a(0b0000000);
port_a_pullups(true); //habilitacion de pull-up
SETUP_TIMER_0(T0_INTERNAL|T0_DIV_16);
SET_TIMER0(6);
enable_interrupts(INT_TIMER0);
enable_interrupts(INT_EXT);
EXT_INT_EDGE(H_TO_L);
enable_interrupts(GLOBAL);
lcd_init();
output_high(led);
//-----------------------------Borro variables----------------------------------
vuelta=0;
t0=250;
k0=0;
k=0;
vuelta=0;
//-----------------------------Bucle infinito-----------------------------------
while(true){
delay_ms(250);
lcd_putc('\f');
printf(lcd_putc,"\fr.p.m=%Lu",k);
}
}
//------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------------------------------
Igual lo probe en el protoboard y no me anda, desinstale el mplab y lo volvi a instalar y sigo con el problema de que no me anda. Es el mplab? el pickit 3 no creo que
sea, lo probe con otro y me da el mismo problema. Espero que me puedan ayudar. No pude adjuntar los archivos, por eso pegue todo el texto.
Gracias y saludos.
-
No es el programa. Creo que todo va a depender de como estes alimentando el PIC
La pregunta es.. Al PIC al momento de grabarlo lo estas alimentado externamente o desde el Pickit3 ?
Si no tenes conectada ninguna fuente, podes usar el pickit3, para eso en el MPLAB copio y pego:
PROGRAMMER > Settings >>> Power >> click the power target circuit form PICKIT3
Asi de esa forma el pickit3 es el que entrega la tension para alimentar al PIC y poder programarlo.
Nuevamente, esto si o si, si es que tenes el PIC solo y no esta conectado con una fuente al momento de la programacion.
-
Si, lo alimento del pickit3, tambien hago todos esos pasos ...