Autor Tema: ¿Que falla?... 12F675.... Ya no falla, jejejeje.  (Leído 6949 veces)

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

Desconectado joebar

  • PIC10
  • *
  • Mensajes: 25
¿Que falla?... 12F675.... Ya no falla, jejejeje.
« en: 30 de Octubre de 2006, 20:39:11 »
Hola a todos. Echadme una mano por favor, la aplicación es super sencilla, se trata de encender un led durante 0,7sg si tenemos una entrada y otro led igual si tenemos otra entrada diferente, na más, pero al simular en el Proteus no hace absolutamente nada, no da error pero no enciende las salidas...

Os espero, muchas gracias y saludos. ;)





« Última modificación: 31 de Octubre de 2006, 16:26:01 por joebar »

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: ¿Que falla?... 12F675
« Respuesta #1 en: 30 de Octubre de 2006, 21:45:01 »
No se porque has puesto trisio=%000011 con comilla, de esta manera no lo ejecuta.

Tambien te faltan definir varias cosas:

GPIO = 0            ' inicializa el registro gpio
TRISIO = 0         ' configura los pines gpio como salida
CMCON1 = 7       ' desactiva los comparadores
ANSEL = 0          ' desactiva AD
VRCON = 0         ' voltaje de referencia

Es mas facil que te podamos ayudar si pegas el codigo y no una imagen de el, mejor aun con el archivo de proteus para probarlo directo.

Suerte
« Última modificación: 30 de Octubre de 2006, 21:46:33 por veguepic »
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: ¿Que falla?... 12F675
« Respuesta #2 en: 31 de Octubre de 2006, 00:17:03 »
Hola joebar, más halla de lo comentado por veguepic, fijate que en las sentencias "IF" estas usando el registro TRISIO en ves del correcto que sería GPIO, por lo tanto debería quedar algo así:

if gpio.0=1 then goto derecha
end if
if gpio.1=1 then goto izquierda
end if

Espero te sea de ayuda.

Un saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: ¿Que falla?... 12F675
« Respuesta #3 en: 31 de Octubre de 2006, 00:24:07 »
Hola:

Como dice Carlos, estas utilizando el registro equivocado para los condicionales, Veguepic, creo que no lo tiene definido en el codigo porque MKB permite hacerlo cuando se esta creando el nuevo proyecto, sale una ventana en la cual se debe hacer las configuraciones necesarias de algunos registros y fusibles.
« Última modificación: 31 de Octubre de 2006, 00:25:44 por LordLafebre »

Desconectado Veguepic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2119
Re: ¿Que falla?... 12F675
« Respuesta #4 en: 31 de Octubre de 2006, 01:23:29 »
Hola Gio:

A mi al principio solo me aparecen los Fuses (MCLR, CP, etc) pero nada sobre los comparadores, el AD o el voltaje de referencia. Sera que me falta activar algo?

No estoy seguro pero creo recordar haber leido que si no desactivas los comparadores o el AD estos por defecto estan activos, de repente estoy en un error y se me han cruzado los cables.  :(

Saludos
« Última modificación: 31 de Octubre de 2006, 01:30:26 por veguepic »
“Si la gente es buena sólo porque temen al castigo y porque esperan una recompensa, entonces verdaderamente somos un grupo lastimoso." Albert Einstein.

Saludos desde Lima , Peru    -    Hugo

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: ¿Que falla?... 12F675
« Respuesta #5 en: 31 de Octubre de 2006, 02:10:36 »
No estoy seguro pero creo recordar haber leido que si no desactivas los comparadores o el AD estos por defecto estan activos, de repente estoy en un error y se me han cruzado los cables.  :(

Hola:

Asi es, hay que desactivarlos, y parece ser que me apresure en decir lo otro, ya que solo veo los fusibles que tu dices, no he utilizado mucho MKB, entonces se debera hacer como lo mencionas en tu post anterior.


Desconectado joebar

  • PIC10
  • *
  • Mensajes: 25
Re: ¿Que falla?... 12F675
« Respuesta #6 en: 31 de Octubre de 2006, 05:13:57 »
No se porque has puesto trisio=%000011 con comilla, de esta manera no lo ejecuta.

Lo puse entre comillas para asignar las entradas y salidas directamente como puedes ver unas líneas más abajo, lo probé así ya que tampoco me funcionó el trisio=%000011.

Gracias por tu ayuda y comentario. Saludos. ;)

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: ¿Que falla?... 12F675
« Respuesta #7 en: 31 de Octubre de 2006, 05:24:18 »
¿Son necesarios esos end if? ¿Si pones la condicion verdadera (then) en la misma linea del IF, deben ir los end if?

Lo digo desde la lejana llanura, alla por el VB, ya que casi nunca he programado en PBP, menos en MKB.

Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado joebar

  • PIC10
  • *
  • Mensajes: 25
Re: ¿Que falla?... 12F675
« Respuesta #8 en: 31 de Octubre de 2006, 05:26:20 »
¿Son necesarios esos end if? ¿Si pones la condicion verdadera (then) en la misma linea del IF, deben ir los end if?

Lo digo desde la lejana llanura, alla por el VB, ya que casi nunca he programado en PBP, menos en MKB.

Saludos.

Sí que son necesarios, ya que si no los pone te da un error al compilar...

Saludos. ;)

Desconectado joebar

  • PIC10
  • *
  • Mensajes: 25
Re: ¿Que falla?... 12F675
« Respuesta #9 en: 31 de Octubre de 2006, 05:32:44 »
Hola joebar, más halla de lo comentado por veguepic, fijate que en las sentencias "IF" estas usando el registro TRISIO en ves del correcto que sería GPIO, por lo tanto debería quedar algo así:

if gpio.0=1 then goto derecha
end if
if gpio.1=1 then goto izquierda
end if

OK, modificado pero nada de nada...

program Intermitentes
trisio=%000011

main:
gpio.4=0
gpio.5=0
if gpio.0=1 then goto derecha
end if
if gpio.1=1 then goto izquierda
end if
goto main

derecha:
gpio.4=1
delay_ms(700)
gpio.4=0
goto main

izquierda:
gpio.5=1
delay_ms(700)
gpio.5=0
goto main

end.

x Veguepic: No se como pegar el código desde Proyeus, si me ilustras te lo agradecería. :)

Os pongo también la configuración a ver si ahí veis algo que esté mal, esta misma aplicación la he realizado en 16F84 y funciona bien, ya veis que no tiene absolutamente nada de complicado pero algo me está fallando con el 12F675, no se, a ver que me podéis decir...


Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: ¿Que falla?... 12F675
« Respuesta #10 en: 31 de Octubre de 2006, 13:00:14 »
Hola en el TRISIO nadamas por si las dudas pon TRISIO=%001011, ya que GPIO.3 es entrada unicamente y prueba haber con el INTRC_OSC_NOCLKOUT para ver si es el crystal, ya van 2 que a mi no me funcionan.

Y por cierto alguna vez en MKB intente sacar las rutinas del main y me botaba un error o un warning y nunca jalaban los programas trata hacer esto

Código: [Seleccionar]

program Intermitentes

subprocedure derecha()
  gpio.4=1
  delay_ms(700)
  gpio.4=0
end sub

subprocedure izquierda()
  gpio.5=1
 delay_ms(700)
 gpio.5=0
end sub


main:
trisio=%001011
cmcon1 = 7
ansel    = 0
vrcon   = 0
gpio.4   = 0
gpio.5   = 0

x:
   if gpio.0=1 then
    derecha()
    end if

  if gpio.1=1 then
    izquierda()
  end if
goto x
end.


se me olvidaba en los registros pon mclr en off o en on si lo pones en on ponle una resistencia de 10k a vdd
« Última modificación: 31 de Octubre de 2006, 13:02:17 por navaismo »
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado joebar

  • PIC10
  • *
  • Mensajes: 25
Re: ¿Que falla?... 12F675
« Respuesta #11 en: 31 de Octubre de 2006, 13:26:33 »
Hola Navaismo, gracias por tu ayuda, ese código no funciona en MKB, me da errores por todos lados, voy corrigiendo los bucles procedures con gosub/return y me da errores en CMCON1, ANSEL y VRCON, no los reconoce, dice que no se han declarado... :x, joer, mira que es sencillo el programita ¿eh?... pues no hay de echarlo andar...

Saludos. ;)

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: ¿Que falla?... 12F675
« Respuesta #12 en: 31 de Octubre de 2006, 13:42:10 »
Copiste y pegaste el codigo????? porque si lo hiciste mkb no reconoce nada pegando tendrias que teclearlo uno a uno y en los procedimientos debe llevar un espacio entre sub procedure.

Lo acabo de compilar y el unico error que encontro es que no tengo una dichosa libreria lo cual hace que no genere nada. jijijiji, deja veo si puedo ver si se compila bien
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: ¿Que falla?... 12F675
« Respuesta #13 en: 31 de Octubre de 2006, 13:49:26 »
Ya esta joebar ya funciona solo quita el uno de cmcon, osea reemplaza cmcon1 por cmcon y listo si te sale un error de una libreria no encontrada, porque a mi me salio solo comenta la linea del include de la libreria que afecta si no pues te lo compilara bien.

aqui te dejo el codigo que me funciono:

Código: [Seleccionar]
program interm

sub procedure DERECHA()
 GPIO.4 = 1
 DELAY_MS(700)
 GPIO.4 = 0
 DELAY_MS(700)
END SUB

SUB PROCEDURE IZQUIERDA()
 GPIO.5 = 1
 DELAY_MS(700)
 GPIO.5 = 0
 DELAY_MS(700)
END SUB

MAIN:
TRISIO=%001011
CMCON = 7
ANSEL  = 0
VRCON  = 0
GPIO.4 = 0
GPIO.5 = 0
 X:
   IF GPIO.0 =1 THEN
    DERECHA()
   END IF
   
   IF GPIO.1 =1 THEN
    IZQUIERDA()
   END IF
 GOTO X
END.

recuerda tendras que teclearlo porque a varios nos salen errores acerca del copy&paste

saludos
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado joebar

  • PIC10
  • *
  • Mensajes: 25
Re: ¿Que falla?... 12F675
« Respuesta #14 en: 31 de Octubre de 2006, 14:35:48 »
Pues después de escribir de nuevo el programa, renombrado y configurado en el Proteus para que funcione con el hex correspondiente, na de na compañero, he estado tocando los fusibles (creo que se llaman así) en el MKB incluso desactivandolo todos y en el Proteus no se enciende ni una salida  :?, me está ganando este programa, el caso es que en el 16F84A corre perfectamente...

Te pongo aquí el código (que es el mismo que el tuyo) es un copy/paste de lo escrito en el MKB, muchas gracias por tu ayuda y si se te ocurre algo más por favor... por aquí andaré.  :P


program Intermitente3

sub procedure derecha()
gpio.4=1
delay_ms(700)
gpio.4=0
delay_ms(700)
end sub

sub procedure izquierda()
gpio.5=1
delay_ms(700)
gpio.5=0
delay_ms(700)
end sub

main:
trisio=%001011
cmcon=7
ansel=0
vrcon=0
gpio.4=0
gpio.5=0

x:
  if gpio.0=1 then
   derecha()
  end if

  if gpio.1=1 then
   izquierda()
  end if
goto x

end.

Saludos. ;)


 

anything