Autor Tema: AYUDA CON ICD2 CON PIC12F675  (Leído 2463 veces)

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

Desconectado gomdryyy

  • PIC10
  • *
  • Mensajes: 15
AYUDA CON ICD2 CON PIC12F675
« en: 07 de Febrero de 2008, 23:15:21 »
ESTIMADOS AMIGOS PUES LES CUENTO YA TERMINE DE PROGRAMAR UN PIC12F675 CON EL CCS Y AHORA ESTOY POR PROGRAMAR CON EL MPLAB, PUES TENGO EL ICD2 DE MICROCHIP, LA CUESTION AHORA ES QUE YA TENGO ABILITADO EN MPLAB, PROGRAMAR CON EL CCS Y TODO ESTA BIEN, GEMERA EL .HEX ASI QUE BUENO ME DISPONGO HA GRABAR Y RECONOCE LA TARGETA Y TODO, LO MAND HA GRABAR Y ME DICE EL SIGUIENTE ERROR

MPLAB ICD 2 Ready
Programming Target...
...Validating configuration fields
ICDWarn0033: MPLAB ICD 2 does not support programming this device if both the internal oscillator and internal MCLR are selected.  You may continue programming, but you are encouraged to cancel, reconfigure your device, and try again.
ICD0200: Operation Aborted (Warning 32).
ICD0275:  Programming failed.
MPLAB ICD 2 Ready

OK BUENO LO QUE HAGO ES MODIFICAR LOS FUSES ASI;


OSCILLATOR                          INTERNAL RC CLOCKOUT
WATCHDOG TIMER                 OFF
POWER UP TIMER                   ON
MASTER CLEAR ENABLE          EXTERNAL
BROW OUT DETECT                ON
CODE PROTECTET                  OFF
DATA EE READ PROTECTET     OFF



ASI QUE ME PROGRAMA BIEN, SEGUN PERO ALA HORA DE COLOCAR EL CHIP SOLO NO HACE NADA SE QUEDA SIN VIDA, NOSE SI ME PUEDAN AYUDAR EL PIC ES EL 12F675, Y PRETENDO USAR EL OSCILADOR INTERNO LES MANDO EL CODIGO HABER QUE ME DICEN OK GRACIAS DE ANTEMANO.




#include <12F675.h>  ///   libreria para el manejo del pic12f675

#use delay(clock=4000000)   ///   declara  la frecuencia del cristal

#USE I2C(SLAVE, SDA=PIN_A0, SCL=PIN_A1, address=0xA0, FORCE_HW)

#fuses INTRC_IO,NOWDT,NOCPD,NOPROTECT,NOMCLR,PUT,BROWNOUT,INTRC

#byte TRISIO = 0x85
#byte GPIO = 0x05
#bit PULSADOR1 = GPIO.3 //asigna nombre a un pin fisico
#bit LECTURA = GPIO.4
int incoming;
int lectura1;

void main(void)
{


TRISIO=0b00011100; //Configuracion del puerto. '0' salida. '1' entrada.
lectura = 0;
     while(true)
    {     


output_high(PIN_A2);  //ESTE CODIGO ES PARA PROBAR SI ESTABA GRABADO, ES UN BIT QUE OSCILA CADA SEGUNDO
delay_ms(1000);
output_low(PIN_A2);
delay_ms(1000);



         if(LECTURA==1){
             i2c_write(0xA0);
             incoming = i2c_read(0xA0);//lectura del bus i2c
             i2c_stop();
             lectura1 = incoming;
            }
if(incoming<=0){incoming=0;}

if (PULSADOR1 == 1){
if(lectura1 == 5){
output_high(PIN_A2);
//delay_ms(100);
delay_us(415);
output_low(PIN_A2);
//delay_ms(100);
}
else if(lectura1 == 10){
output_high(PIN_A2);
delay_us(830);
output_low(PIN_A2);}

else if(lectura1 == 15){
output_high(PIN_A2);
delay_us(1245);
output_low(PIN_A2);}

else if(lectura1 == 20){
output_high(PIN_A2);
delay_us(1660);
output_low(PIN_A2);}

else if(lectura1 == 25){
output_high(PIN_A2);
delay_us(2075);
output_low(PIN_A2);}

else if(lectura1 == 30){
output_high(PIN_A2);
delay_us(2490);
output_low(PIN_A2);}

else if(lectura1 == 35){
output_high(PIN_A2);
delay_us(2905);
output_low(PIN_A2);}

else if(lectura1 == 40){
output_high(PIN_A2);
delay_us(3320);
output_low(PIN_A2);}

else if(lectura1 == 45){
output_high(PIN_A2);
delay_us(3735);
output_low(PIN_A2);}

else if(lectura1 == 50){
output_high(PIN_A2);
delay_us(4150);
output_low(PIN_A2);}

else if(lectura1 == 55){
output_high(PIN_A2);
delay_us(4565);
output_low(PIN_A2);}

else if(lectura1 == 60){
output_high(PIN_A2);
delay_us(4980);
output_low(PIN_A2);}

else if(lectura1 == 65){
output_high(PIN_A2);
delay_us(5395);
output_low(PIN_A2);}

else if(lectura1 == 70){
output_high(PIN_A2);
delay_us(5810);
output_low(PIN_A2);}

else if(lectura1 == 75){
output_high(PIN_A2);
delay_us(6225);
output_low(PIN_A2);}

else if(lectura1 == 80){
output_high(PIN_A2);
delay_us(6640);
output_low(PIN_A2);}

else if(lectura1 == 85){
output_high(PIN_A2);
delay_us(7055);
output_low(PIN_A2);}

else if(lectura1 == 90){
output_high(PIN_A2);
delay_us(7470);
output_low(PIN_A2);}

else if(lectura1 == 95){
output_high(PIN_A2);
delay_us(7885);
output_low(PIN_A2);}

else if(lectura1 == 100){
output_high(PIN_A2);
delay_us(8300);
output_low(PIN_A2);}
            }//fin de cruce por cero
    }//fin de while infinito
}//fin de main


Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: AYUDA CON ICD2 CON PIC12F675
« Respuesta #1 en: 07 de Febrero de 2008, 23:29:35 »
gomdryyy,

La respuesta a tu problema es simple. El ICD 2 no puede programar este micro porque habilitas tanto el oscilador interno como el MCLR interno y eso es lo que te dice el enunciado. Entonces lo que haces es modificar los fuses del micro y entonces lo que haces es decirle que el MCLR es externo, con esto deshabilitas el pin GPIO3 como puerto, quedando este pin como reset y como en el pin tienes un pulsador con una resistencia de pull-down, entonces el micro esta continuamente en RESET. Lamento decirte que tendras que usar otro programador para programar el micro, como el PICStart Plus o algun otro, para que te permita colocar el MCLR interno y entonces tener disponible el pin GPIO.3.

Saludos.

Elreypic.

Desconectado gomdryyy

  • PIC10
  • *
  • Mensajes: 15
Re: AYUDA CON ICD2 CON PIC12F675
« Respuesta #2 en: 08 de Febrero de 2008, 13:40:06 »
gomdryyy,

La respuesta a tu problema es simple. El ICD 2 no puede programar este micro porque habilitas tanto el oscilador interno como el MCLR interno y eso es lo que te dice el enunciado. Entonces lo que haces es modificar los fuses del micro y entonces lo que haces es decirle que el MCLR es externo, con esto deshabilitas el pin GPIO3 como puerto, quedando este pin como reset y como en el pin tienes un pulsador con una resistencia de pull-down, entonces el micro esta continuamente en RESET. Lamento decirte que tendras que usar otro programador para programar el micro, como el PICStart Plus o algun otro, para que te permita colocar el MCLR interno y entonces tener disponible el pin GPIO.3.

Saludos.

Elreypic.




ESTIMADO elreypic2 HE ESTADO CHECANDO LO QUE MEDICES Y TIENES RAZON EN TODO TE AGRADESCO LAS RESPUESTA PRONTA Y GRACIAS INTENTARE PROGRAMAR CON OTRO PROGRAMADOR O INTENTARE UTILIZAR OTRO PIN COMO ENTRADA DE CRUCE POR CERO Y EL GPIO.3 COMO RESET  GRACIAS DE ANTEMANO TU AMIGO COMDRYYY