Autor Tema: Ayuda con C y un 16F84  (Leído 2645 veces)

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

Desconectado Mil24

  • PIC10
  • *
  • Mensajes: 5
Ayuda con C y un 16F84
« en: 28 de Febrero de 2006, 23:09:00 »
Hola amigos les comento que estoy empezando con estos de la programacion pic, y me incline por c, ya que soy analista de sistemas, tengo bastante conocimiento sobre los lenguajes de programacion, hice este programita para encender y apagar un led, lo compilo, lo abro con el ICPROG y cuando lo grabo en el pic me sale un error en la poscicion 001h, u otra, la cuestion es que ya cambie un monton de veces la forma y las instrucciones del programa, pero no me da resultado, el ICPRGO esta bien configurado y el Programador JDM tambien , me funciona con otros ejemplos que descarge.
el problema esta en el codigo c pero no se donde. agradezco cualquier ayudita. Gracias

#include <16F84A.h> //pic a utilizar

#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use standard_io //puerto B como salida

//#include "16F84A.H" //incluye el archivo del 16f84
//#fuses XT,NOWDT,NOPROTECT //cristal, WDT disable, no proteger codigo
//#use delay(clock=4000000) //utiliza un cristal de 4 MHz

//#define PB_1 49 // Puerto B 1

void main(){
do{
output_high(PB_1); //prende el led
delay_ms(1000); //espera un segundo (1000 ms)
output_low(PB_1); //apaga el led
} WHILE (1);
}

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
RE: Ayuda con C y un 16F84
« Respuesta #1 en: 01 de Marzo de 2006, 09:31:00 »
Hola, si el error te lo da al programar el pic, el problema no está en el codigo.
Si intentas grabarlo es porque tienes el archivo.hex, y por lo tanto te compila.

Por mi experiencia, cuando usaba el icprog, tambien me daba a veces ese error, monte el GTP-USB, y no me ha vuelto a pasar eso.

De todas formas cuando te da el error 000h, puede ser que tengas el fuse de proteccion de codigo, o datos, activado, y al comprobar los datos, como esta protegido, te da error.

Saludos.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
RE: Ayuda con C y un 16F84
« Respuesta #2 en: 01 de Marzo de 2006, 09:46:00 »
He revisado el codigo que pusiste, y no compila. El siguiente codigo si lo hace:

#include <16F84A.h> //pic a utilizar

#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz


void main(){
do{
output_high(PIN_B1); //prende el led
delay_ms(1000); //espera un segundo (1000 ms)
output_low(PIN_B1); //apaga el led
} WHILE (1);
}
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado Mil24

  • PIC10
  • *
  • Mensajes: 5
RE: Ayuda con C y un 16F84
« Respuesta #3 en: 01 de Marzo de 2006, 12:01:00 »
Gracias micropepe, pero compila bien, el tema es que ya probe de varias formas, incluso en la que vos me decis, se graba bien en el micro, el tema es que no hace lo que debe, en cambio si cargo en el pic un programa que hace lo mismo pero echo en asembler, funciona perfecto, osea que el problema no es, ni el programador.
ni el micro, ya probe en mas de uno.
Lo que creo que puede ser es que al compilar con el ccs no lo haga como debe entonces el micro se quede en nop.
Agradezco tu ayudita, saludos. JuanPablo.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
RE: Ayuda con C y un 16F84
« Respuesta #4 en: 01 de Marzo de 2006, 12:18:00 »
Aunque no sea mas que para confirmarlo.

Sobre la barra de herramientas hay un desplegable que selecciona el tipo de compilación a realizar:

Microchip 12 bit, Microchip 14 bit o Microchip PIC18

Asegurate que tienes seleccionado el correcto que para el PIC 16F84A
debe ser el Microchip 14 bit.

Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado fastyx

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 353
RE: Ayuda con C y un 16F84
« Respuesta #5 en: 02 de Marzo de 2006, 06:35:00 »
si todavia no te anda,proba lo siguiente:

inmediatamente despues de la llave de apertura del main

coloca el seteo del tris del puerto b,o sea le decis al micro con esta instruccion que se coloque en posicion de entrada o de salida.en tu caso si queres prender el led lo colocas como salida
set_tris_b(0b00000000)

la cantidad de ceros es igual a la cantidad de pines del puerto b,y de derecha a izquierda se definen desde rbo hasta el ultimo rb que tenga el pic

0= salida; 1  = entrada
espero haya sido de utilidad!

Desconectado Mil24

  • PIC10
  • *
  • Mensajes: 5
RE: Ayuda con C y un 16F84
« Respuesta #6 en: 02 de Marzo de 2006, 09:38:00 »
Hola Muchachos! gracias por contestar y darme una manito, la verdad ya probe varias formas, como dice fastyx, haciendo tris al puerto y configurandolo como 0=output
set_tris_b(0b00000000).
Tambien en un principio probe con lo que dice Redpic, de utilizar Microchip 14 bits.
Pero no hay forma, no se cual sea el problema, pienso que a lo mejor la compilacion en hexa que realiza el css no es compatible, por lo menos los assembler que tengo y que funcionan estan en INHX8M, no se si tendra algo que ver, pero estoy bastante a la deriva, no puedo entender cual es problema del no funcionamiento del pic en circuito, por que todo lo demas se hace sin problemas, el tema es que en la practica no funciona.  Agradezco MUCHO su ayuda y espero poder darles una mano en algun momento para devolverles su atencion. JuanPablo.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
RE: Ayuda con C y un 16F84
« Respuesta #7 en: 02 de Marzo de 2006, 13:12:00 »
Comprueba por lo menos esto. En Options  File Formats Object File debe ser 8 bit Hex



Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Mil24

  • PIC10
  • *
  • Mensajes: 5
RE: Ayuda con C y un 16F84
« Respuesta #8 en: 03 de Marzo de 2006, 05:41:00 »
Gracias PicRed por tu atencion! pero eso esta tal cual la imagen, no se cual podra ser el problema, pero por ahora tendre que conformarme con luchar con el assembler, justo cuando habia terminado de estudiarme un manual del CCS. Muchas risas
De todas formas sigo pensando que hay un problema de compatibilidad entre la compilacion y el IC PROG.
En fin un saludo y un abrazo muy grande a todos por darme una mano! espero poder servirles de ayuda en algun momento! JuanPablo.

Desconectado lovando

  • PIC16
  • ***
  • Mensajes: 193
RE: Ayuda con C y un 16F84
« Respuesta #9 en: 03 de Marzo de 2006, 07:39:00 »
Debieras postear el C/ASM List y el archivo HEX que te genera el CCS, para poder revisar que es lo que efectivamente compila.

Yo haria lo sgte:


#include <16F84A.h> //pic a utilizar

#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz


void main() {

while(1) {
output_high(PIN_B1); //prende el led
delay_ms(1000); //espera un segundo (1000 ms)
output_low(PIN_B1); //apaga el led
delay_ms(1000); //deja 1 segundo apagado el led, puesto que practicamente no
                           //no se notaria el apagado, sino que siempre estaria encendido
}//while(1)
}//main()


Saludos

Desconectado Mil24

  • PIC10
  • *
  • Mensajes: 5
RE: Ayuda con C y un 16F84
« Respuesta #10 en: 04 de Marzo de 2006, 19:58:00 »
Nooooooooo! No puedo ser tan Pelo..., era tan simple la respuesta.Rebotado
Claro, como iba a apagar el led si nunca habia retardo de apagado.
Les pido mil disculpas a todos por mi error. y Un Millon de graciaspor su ayuda.

En ningun momento me habia percatado de tan estupido error. Mis reverencias a lovando!! Saludos y mil gracias de nuevo!! JuanPablo.