Autor Tema: necesito programar un 16f628 !!ayuda!! con lo siguiente:  (Leído 27334 veces)

0 Usuarios y 5 Visitantes están viendo este tema.

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #30 en: 02 de Diciembre de 2006, 21:04:01 »
  Saludos otra vez.
 Buscando una solución, he tropezado con una cabecera que me funciona.
La he probado y funciona.

    ORG      0
   BSF      STATUS,5   ; activa la pagina 1
   CLRF      TRISA
   CLRF      TRISB      ; puerto a y b todos salidaS
   BCF      STATUS,5   ; volvemos a la pagina 0
   MOVLW      b'00000111'   ; comparadores desactivados,
   MOVWF      CMCON      ; I/O digitales.
   CLRF      PORTB      ; ponemos a 0 portb


 Por lo visto debía limpiar los puertos antes de nada, con eso los fuerzo los
PORTA y PORTB como salidas y luego vuelvo a la pag.0

 Por fin consigo mi primer programa para el F628, espero que cuando lo queme
me siga la euforia, señal inequivoca de que todo ca de cine.

 Saludos a todos y gracias.

 P.D. : Me voy de viaje mas tranquilo.
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #31 en: 02 de Diciembre de 2006, 21:06:53 »
Hola toc-toc. Te he respondido a los problemas en tu código en este mismo tema explicandote todo. Fijate...

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 toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #32 en: 02 de Diciembre de 2006, 21:13:05 »
 Vaya, gracias BrunoF, mira que he terminado de cenar y he enviado el mensage y
en ese momento tu que respondías al anterior mio, se han cruzado.

 Bueno, voy a corregir los que me indicas sobre la configuración de código para mis próximos
listados y espero que me funcione todo bien.

 Por cierto, cuando me dices que al simularlo ponga la ventana Warch, no lo he hecho nunca y
te agradecería me hicieras una demo. para entenderte mejor.

 Gracias por tus esfuerzos.
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #33 en: 02 de Diciembre de 2006, 21:35:56 »
Fíjate en tu perfil.Debes destildar la opción "No advertir de nuevas respuestas mientras se está publicando un mensaje".

Esto hará que aparezca una advertencia de color rojo al intentar publicar tu mensaje o bien al previsualizarlo indicandote que han respondido mientras estabas respondiendo.











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 toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #34 en: 02 de Diciembre de 2006, 21:44:12 »
 Hola BrunoF, tienes razón con el uso de los registros, para eso estan los Registros de
Proposito General, no debería tener estos fallos tan básicos y mira, empiezo a pensar
que el parkinson se hace camino. ;o)

 Recibido mientras tomaba nota.

 Gracias y mil veces gracias, vaya rapidez la tuya en responder (quien pudiera), creo
que está claro tu ej. demo y además clara. Por otra parte, estoy usando la versión 5.5
del MPLAB, pienso q he de actualizarme y aún no aprendí con el viejo, ;o)

 Bueno, ahora lo que estoy pensando es, encender dos LEDs conectados uno de RB0 a
RB1 y otro de RB1 a RB0. De modo que, cuando uno esté polarizado luzca y el otro se
encuentre en oposición por lo que no lucirá.

 Creo que es un ejemplo sencillo y no debería crearme mayor problema, lo voy a intentar,
pero eso si no lo consigo mañana domingo, creo que será para cuando vuelva de viaje.

 De todos modos agradecido por tu ayuda BrunoF. Saludos desde Valencia.
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #35 en: 02 de Diciembre de 2006, 21:47:56 »
De nada. :mrgreen:

Te dejo que pruebes hacerlo vos. Si no te sale me avisas.

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 toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #36 en: 07 de Diciembre de 2006, 17:11:58 »
 Hola! Un saludo a todos.

 Bueno como he tenido una escapada del hotel, he preparado esta rutina
que como dije en mi anterior mensaje ha de encender un LED conectado
en RB0 y RB1 mientras que el LED que se encuentra conectado al revés
en los mismos registros, al estar en polarización inversa, no debe lucir.

Esto es lo que he probado y al parecer en la simulación con el MPLAB es
correcto. Hechadle un vistazo para confirmarlo.


;
; ESTA ES LA CABECERA PARA EL F628A
;
;******************************************************************
;   Titulo:   2leds.asm            
;   Autor:   toc-toc
;   Fecha:   07-12-06
; Que hace => Enciende un LED en RB0 y otro en RB1
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
;--------------- Encabezado -------------

   LIST   P=16F628,                 ; usar PIC 16F648A
   include <p16f628.inc>

;************ PALABRA DE CONFIGURACION ******************************************
 __CONFIG    _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _LVP_OFF & _INTRC_OSC_NOCLKOUT
            ; las tres configuraciones son equivalentes
            ; Code protection         OFF
            ; Data code protection      OFF
            ; Low voltage programming, RB4 I/O   OFF
            ; Brown-out reset         ON
            ; MCLR desctivado, RA5 I/O   OFF
            ; Watchdog timer         OFF
            ; Power-up timer         ON
            ; OSC es Int 4MHz,RA6 y RA7 son I/O

   errorlevel      -302   ; Eliminate bank warning

reg1   equ   0x20      ; siempre se necesitan un par
reg2   equ   0x21      ; de registros auxiliares

;*********************************************************************************

   ORG      0x00

   BSF      STATUS,5   ; activa la pagina 1
   CLRF      TRISA
   CLRF      TRISB      ; puerto a y b todos salidaS
   BCF      STATUS,5   ; volvemos a la pagina 0
   MOVLW      b'00000111'   ; comparadores desactivados,
   MOVWF      CMCON      ; I/O digitales.
   CLRF      PORTB      ; ponemos a 0 portb

INICIO
   MOVLW      .170   ; b10101010
   MOVWF      PORTB
   RRF      PORTB,1   ;
   CALL      pausa
   GOTO       $-2      ; va a inicio

pausa   MOVLW      0xF
   MOVWF      2Ah
   MOVWF      2Ch
pausa1   DECFSZ      2Ah,1      ; Retardo
   GOTO      pausa1
   DECFSZ      2Ch,1
   GOTO      pausa1
   RETURN


   END


 Gracias por los comentarios.

Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #37 en: 07 de Diciembre de 2006, 20:02:58 »
Hola toc-toc.

Me alegro que hayas logrado la forma de hacerlo. :-/ :-/

Pero si bien en la simulación el código te puede funcionar bien, no te asombres si no se comporta igual cuando enciendas el PIC real.

Mira este post mío: http://www.todopic.com.ar/foros/index.php?topic=14812.msg91216#msg91216

Podes ver el problema que implica desconocer el valor del bit STATUS,C al ejercer una rotación.

Si al momento de ejecutarse la primer rotación STATUS,C = 1 el programa no va a funcionar como queres(PORTB= 11010101). Tampoco lo va a hacer si en el futuro agregas código y utilizás alguna instrucción que afecte el valor del bit STATUS,C entre medio(addwf,subwf,addlw,etc...).

Para asegurarte que la primer rotacion ingrese un 0 en PORTB,7 deberias hacer esto:

INICIO
   MOVLW      .170   ; b10101010
   MOVWF      PORTB
   BCF      STATUS,C ;Asegurar que en la primer rotacion ingrese un 0 en PORTB,7
   RRF      PORTB,1   ;
   CALL      pausa
   GOTO       $-2      ; va a inicio



Hay otras formas de hacer lo mísmo. Y de manera más segura. Ejemplos:

INICIO
   MOVLW      .170   ; b10101010
   MOVWF      PORTB
   COMF        PORTB,F      ;Invierte el valor de los bits de PORTB
   CALL         pausa
   GOTO        $-2      ; va a inicio


INICIO
   MOVLW      .170   ; b10101010
   MOVWF      PORTB
   MOVLW      0XFF    ;Cargar b'11111111' en W
   XORWF      PORTB,F ;La XOR hace la inversion aqui.
   CALL         pausa
   GOTO        $-3      ; va a inicio

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 toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #38 en: 09 de Diciembre de 2006, 13:35:20 »
  Hola! BrunoF, cierto, tu comentario es genial, ya había visto el error que se
producía y pensé en la misma solución, si bien es cierto hay otros modos de
conseguir que los LEDs se enciendan según mi enunciado, solo era una forma
de ejercicio para el F628 que como ya comenté me estaba dando problemas
y parece que ya tengo una ligera idea de plantear la cabecera para realizar
un programa.

 Por cierto, con el F84A tengo hecho un programa que maneja un motor de pasos
que me está funcionando bien, es cierto que solo tiene tres opciones con los tres
pulsadores que dispone, uno hace girar en una dirección el otro lo para y el tercero
le hace girar en sentido contrario. No está modulado y la velocidad es casi constante
y digo casi, porque depende de la carga de un condensador ya sabes.
 
 He pensado en usar parte del programa para que haga algo mas que girar en ambas
direcciones. Me gustaría que me orientaras para conseguir que gire un determinado
número de pasos y cómo lograr que sea controlado ese número de pasos, no se si me
explico.

 Si te parece puedo poner el archivo para ver si se aprovecha alguna parte o si lo
prefieres lo empiezo de cero?, igual es lo mejor.

 Bueno, estaré haciendo la cabecera hasta que me vaya y esta vez me voy de viaje y
espero que no me lo estropee nada, espero.

 Un saludo y gracias por tus comentarios Bruno


Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #39 en: 09 de Diciembre de 2006, 16:17:42 »
Bueno, pone el código y lo miramos.

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 Radiotecnico

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 208
    • Microcontrolador
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #40 en: 09 de Diciembre de 2006, 19:17:46 »
Hola! :)
Estoy bajando ejercicios básicos, simulados en proteus, en la sección de NIPLE.
Creo que podrian ayudar a los menos espertos a programar, mas rapidamente.

No no no...acá piratería no...
« Última modificación: 09 de Diciembre de 2006, 21:01:55 por BrunoF »
Necesario es saber...

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #41 en: 23 de Enero de 2007, 21:31:44 »
 Hola! BrunoF, un saludo a todos los foreros. Ya he vuelto de viaje, que ganas tenía.

 He estado buscando en mi PC el programa que menciono en mi último post y
como te decía, funciona bien, gira en ambas direcciones según el pulsador que
apriete o el de parada.

 
Citar
He pensado en usar parte del programa para que haga algo mas que girar en ambas
direcciones. Me gustaría que me orientaras para conseguir que gire un determinado
número de pasos y cómo lograr que sea controlado ese número de pasos, no se si me
explico.

 Es decir, que ahora gira en una dirección sin parar y lo que quiero es que gire hasta
que se active una señal y que tome una decisión según la procedencia de esa señal.
También serviría que girara mientras esté apretado un pulsador, por ejemplo.

 Saludos a todos.
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #42 en: 24 de Enero de 2007, 16:22:38 »
Hola.
Cual es la idea?
Que un pulso en determinado pin haga que comience a girar hacia la izq hasta que reciba otro pulso, el cual dependiendo del pin podra invertir la direccion de giro?

Refrescame un poco el tema porque no me acuerdo...

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 toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #43 en: 25 de Enero de 2007, 19:24:17 »
 Hola! Maestro BrunoF y demás colegas.

 Bueno, por ahí van los pasos, la verdad es que estoy en una fase en la que no he tomado
la decisión final, ya que en principio, sólo traté de hacer que girara, esto ya lo he logrado,
después de aplicar partes de rutinas que aún no domino.  :(

 En este momento, necesito dominar el número de pasos que dará el eje y la propia dirección
de giro. Para esta fase, podrías orientarme en que método usar, porque entiendo que habrá
diferentes modos de conseguir que gire ciertos grados el eje del motor.

 Por cierto y sólo por refrescar los datos, el motor es de doble bobinado con toma intermedia en
cada bobinado y dispone de 48 pasos. En el programa que tengo es para el F84A y no tengo
control de los pasos, me parece que salta dos pasos o más por uno y quiero modificar o mejor
realizar un programa nuevo para el F628 que avance paso a paso.

 Luego ya añadiré otras fases que se me ocurran, así que.

 Para empezar, este sería el planteamiento por fases:

 1- Programa para el F628, usando interrupciones, de modo que permanezca dormido hasta un
 pulso o señal (distintos medios, luz, sonido). Para esta fase, lo que quiero es que cuando despierte,
 lo primero que haga es encender dos LEDs y

 2- Control de giro del eje motor, dirección y pasos. Que haga un par de pasos en ambas direcciones,
 esto nos indica que todo está listo.

 3- Seguimiento de unos pasos determinados (avance en la dirección de la luz).

 Esto es a grandes rasgos lo que pretendo, contando con la necesaria ayuda de maestros como BrunoF
y otros que veo postear.

 A todos gracias de toc-toc
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.

Desconectado toc-toc

  • PIC12
  • **
  • Mensajes: 57
Re: necesito programar un 16f628 !!ayuda!! con lo siguiente:
« Respuesta #44 en: 26 de Enero de 2007, 16:21:51 »
 Hola! Saludos nuevamente.

 Estoy teniendo un problema al intentar quemar un F628 con el clásico TE-20se, me da el
típico error 0000h!. En alguna parte leí que debía colocarse un nuevo zócalo sin el pin 10
y colocarlo encima del TE-20se. Lo he probado y sin embargo sigue dándome el mismo
error.

 Sabe alguien el motivo o como solucionar el problema. La verdad es que me urge saber
la solución ya que como se ve, voy a tener que tener todo a punto.  :lol:

Un saludo de toc-toc a todos.
 
Incluso la época de agobio es digna de respeto.
Porque, no la ha creado el hombre, sino la naturaleza que puede ser dura pero jamas absurda.