Autor Tema: Ayuda programar PIC control PAP Bipolar  (Leído 5205 veces)

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

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Ayuda programar PIC control PAP Bipolar
« en: 23 de Agosto de 2009, 19:55:08 »
Hola amigos,

Soy nuevo en el tema de los PICs y tengo el problema de que tengo un proyecto mecanico preparado para funcionar pero una vez terminado y al hacer las pruebas, la parte electronica me falla. :x

Os resumo, tengo un programa que controla un Motor PAP, tiene 5 entradas y 4 salidas (el programa es para un 16F84A y no es de diseño propio claro esta,jeje):

Entradas:
In 1 => Determina el sentido de giro del motor
In2 => Entrada de impulsos para el avance del motor (un impulso un paso)
In3 e In4 => Controlar que el avance del motor sea de medio paso, completo, o doble.
In5 => Si se pulsa los motores dejan de moverse.

Salidas:
Las cuatro bobinas del PAP unipolar.

Pues el fallo esta en que la entrada "In2" proviene del puerto paralelo de un PC y son señales de 5 microsegundos, y el programa esta preparado para señales de 0,5 sg, y claro no detecta nada.

¿Es posible cambiar el programa para que un 16f84a con solo 5 microsegundos detecte la entrada y mande un paso? :?

Gracias a todos.
« Última modificación: 23 de Agosto de 2009, 20:05:39 por sokoloko »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #1 en: 23 de Agosto de 2009, 21:28:34 »
No, porque seguramente el PIC esta trabajando a 4 MHz, osea cada ciclo de instrucción es de 1us. Seguramente cuando entra en funcionamiento queda en espera de alguna de las cinco entradas y si ingresa un pulso por In2 se dirige a una tabla para cargar el puerto para el control del PAP. Esto lleva muchas instrucciones siendo imposible detectar cada 5us.

Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #2 en: 24 de Agosto de 2009, 07:05:49 »
Hola Suky,

Ante todo gracias por la respuesta.

Efectivamente el PIC trabaja a 4 Mh, no pense eso. Lo maximo de tiempo de impulso que me puede dar el programa es de 15uS, aun asi lo veo muy justito.

Buffffff!!!! creo q voy a tener que cambiar de nuevo toda la electronica....en fin...si alguno se le ocurre una forma de q en con señales de 15us funcione, le estaria muy agradecido.

Saludos.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #3 en: 24 de Agosto de 2009, 09:31:32 »
Podes usar un CI preescalador de frecuencia (SDA4212, 74HC390) que por ejemplo cada 64 pulsos te genere 1 para controlar el PIC.



Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #4 en: 25 de Agosto de 2009, 18:53:15 »
Hola...

Menuda peazo idea Suky, muchas gracias.

No conocia ese tipo de integrado ni sus funciones, voy a investigar un poco.

El problema es que es para un sistema CNC, y cada impulso el determinante, pero imagino q podre "trucar" el programa y asi ajustar los impulsos teoricos a los reales.

Muchas gracias por la idea.

Saludos.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #5 en: 27 de Agosto de 2009, 08:26:15 »
El 16f84A lo puedes poner a trabajar a 20Mz asi serian 5 instrucciones cada 1us y en 5us 25 instrucciones. El que no te va a andar a esas velocidades es el PAP que a esa velocidad vibrara, hara ruidos raros, e incluso se estropeara, vamos que hara de todo menos andar. El PIC es posible que no se entere de la señal porque esta haciendo otras cosas, una temporizacion por ejemplo, si en esa entrada le pones una interrupcion se deberia de enterar, el motor si que no hay manera de moverlo a esa velocidad.

Desconectado sansanoloko

  • PIC10
  • *
  • Mensajes: 48
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #6 en: 27 de Agosto de 2009, 10:37:35 »
En teoría puede funcionar al trabajar con un cristal de 20MHz, ya que la transición de un paso a otro se controla por cada impulso, en la entrada In2:
Citar
In 1 => Determina el sentido de giro del motor
In2 => Entrada de impulsos para el avance del motor (un impulso un paso)
In3 e In4 => Controlar que el avance del motor sea de medio paso, completo, o doble.
In5 => Si se pulsa los motores dejan de moverse.

Suponiendo además que las otras entradas son de nivel, y no de pulsos. De esta forma, en teoría no debiera haber problemas de vibraciones en el PAP con un crstal de 20MHz.

Saludos a quienes nos leen.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #7 en: 27 de Agosto de 2009, 10:52:04 »
No todos los 16F84A trabajan hasta 20MHZ, solo los que dicen 16F84A-20 o algo así. Y siendo un PIC discontinuado no creo que sea sencillo conseguirlo.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #8 en: 27 de Agosto de 2009, 14:38:51 »
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010230

Suki por el data deduzco que el unico a la venta ahora mismo da 20Mz ( 5MIPS ) y esta en produccion, no son capaces de dejar de fabricarlo  :lol: es el peor de todos y el mas caro, y seguro que de los mas vendidos. Si es un 16f84a que tenga algun tiempo es posible que no de los 20Mz.
De todos modos un PAP a esa frec no anda ni borracho, y si las entradas son pulsadores quisiera ver yo al artista que los pulsa a esa velocidad  :D

tapi8

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #9 en: 27 de Agosto de 2009, 15:07:22 »
 :oops: Bueno, depende de donde vivas, acá voy a la casa de electrónica y lo único que consigo es el 16F84A-4, le pido el de 20 MHZ  y quedan  :shock: :shock: Les pido un 18F y se me ríen en la cara   :?


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #10 en: 27 de Agosto de 2009, 17:28:52 »
Yo vivo en España pero en una ciudad pequeña ( como Bariloche mas o menos ) y solo hay una tienda de esto, y a veces conseguir algo en el momento tambien es complicado.

tapi8

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #11 en: 29 de Agosto de 2009, 05:51:37 »
Hola amigos!!!

Os aclaro la duda rapidamente jejejejejee!!!!! Es un 16f84A-04  Es decir.............. :x de los de 4 MHz, asi q nada no me vale el invento. Hombre puedo probar a ver si con un cristal de 20 funciona aunque lo dudo.

Y sino tendre q buscar un preescalador por 10 para las señales, el problema es que tengo 8 salidas a reducir y claro, me gustaria saber si algun integrado "economico" trae mas de un preescalador por integrado.

En relación a la velocidad del PAP, yo tampoco creo q funcionen a tanta frecuencia, pero es la que da el software (y  he probado con varios), y no se puede modificar.

Saludos y gracias por la ayuda.

Desconectado sansanoloko

  • PIC10
  • *
  • Mensajes: 48
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #12 en: 29 de Agosto de 2009, 13:23:45 »
sokoloko.... ¿te encuentras capaz de modificar el firmware del PIC?

Te pregunto esto porque es factible funcionar con un cristal de 4MHz.

Lo que yo entiendo del plantemiento inicial, la condición crítica es el ancho del pulso que debe recibir el PIC para que el motor PAP avance un paso, siendo ese pulso de 5useg.

Ahora, si esa entrada del PIC fuera el RB0, utilizando la interrupción por flanco (ya sea de subida o bajada), bastaría con que el pulso recibido sea mayor a un ciclo de instrucción, es decir, con un cristal de 4MHz, el pulso solo debe ser mayor a 1useg. De esta forma, con 5useg se podría trabajar, y si fueran 15useg, mucho mejor.

Para implementar esto, hay que programar el PIC de tal forma que el avance de paso dependa de la rutina de servicio de interrupción.

Espero sirva la idea, y que alguien la apoye o refute.

Saludos a quienes nos leen.

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #13 en: 29 de Agosto de 2009, 15:41:55 »
Hola a todos de nuevos,

Pues a ver Sansanoloko, te comento, tengo el programa del PIC, los PICS y tengo el programador.

Lo primero que intente es con el archivo .asm tratar de entender el codigo, pero al no tener comentarios de ningun tipo......tras un par de dias me desanime y desisti de modificar el codigo  :?. De todas formas no cuento con conocimientos como para realizar lo que tu comentas (al menos de momento), pero me empezare a bajar manuales a ver si me voy iniciando en el mundillo de los PICS.

Saludos y gracias.

PD: Por si alguno se os da bien el tema o os sirve para algo os dejo el codigo por aqui.


Código: [Seleccionar]


; Generated by WinDis84, (c) Nigel Goodwin 1998.

            LIST      P=16F84, F=INHX8M
            include "P16FXX.inc"
            ORG     0x0000

            GOTO    Label_0001
Label_0002  CLRF    INDF
            INCF    FSR       , f
            ADDLW   0xFF
            BTFSS   STATUS    , Z
            GOTO    Label_0002
            GOTO    Label_0003
Label_000F  MOVWF   EEADR
            BSF     STATUS    , RP0
            BSF     EECON1    , 00
            BCF     STATUS    , RP0
            MOVF    EEDATA    , W
            GOTO    Label_0003
Label_001F  MOVWF   EEDATA
            BSF     STATUS    , RP0
            BSF     EECON1    , 02
            MOVLW   0x55
            MOVWF   EECON2
            MOVLW   0xAA
            MOVWF   EECON2
            BSF     EECON1    , 01
Label_0004  BTFSC   EECON1    , 01
            GOTO    Label_0004
            BCF     EECON1    , 02
            GOTO    Label_0003
Label_0020  CLRF    0x0F
            MOVWF   0x0E
Label_0006  MOVLW   0xFF
            ADDWF   0x0E      , f
            BTFSS   STATUS    , C
            ADDWF   0x0F      , f
            BTFSS   STATUS    , C
            GOTO    Label_0003
            MOVLW   0x03
            MOVWF   0x0D
            MOVLW   0xDF
            CALL    Label_0005
            GOTO    Label_0006
Label_001B  CLRF    0x0D
Label_0005  ADDLW   0xE8
            MOVWF   0x0C
            COMF    0x0D      , f
            MOVLW   0xFC
            BTFSS   STATUS    , C
            GOTO    Label_0007
Label_0008  ADDWF   0x0C      , f
            BTFSC   STATUS    , C
            GOTO    Label_0008
Label_0007  ADDWF   0x0C      , f
            CLRWDT
            INCFSZ  0x0D      , f
            GOTO    Label_0008
            BTFSC   0x0C      , 00
            GOTO    Label_0009
Label_0009  BTFSS   0x0C      , 01
            GOTO    Label_000A
            NOP
            GOTO    Label_000A
Label_000A  RETURN
Label_0019  CALL    Label_000B
            BTFSC   STATUS    , Z
            GOTO    Label_000C
            MOVF    0x0F      , W
            MOVWF   0x0D
            MOVF    0x0E      , W
            MOVWF   0x0C
Label_000C  MOVF    0x0C      , W
            RETURN
Label_0010  CLRF    0x0D
            CLRF    0x0F
            MOVWF   0x0E
            MOVLW   0x02
            GOTO    Label_000D
Label_000B  MOVWF   0x0E
            MOVLW   0x01
            GOTO    Label_000D
Label_0017  MOVWF   0x0E
            MOVLW   0x06
            GOTO    Label_000D
Label_000D  MOVWF   0x14
            MOVF    0x0F      , W
            SUBWF   0x0D      , W
            BTFSS   STATUS    , Z
            GOTO    Label_000E
            MOVF    0x0E      , W
            SUBWF   0x0C      , W
Label_000E  MOVLW   0x04
            BTFSC   STATUS    , C
            MOVLW   0x01
            BTFSC   STATUS    , Z
            MOVLW   0x02
            ANDWF   0x14      , W
            BTFSS   STATUS    , Z
            MOVLW   0xFF
            GOTO    Label_0003
Label_0011  IORLW   0x00
            BTFSS   STATUS    , Z
            MOVLW   0xFF
            ANDWF   FSR       , W
            BTFSS   STATUS    , Z
            MOVLW   0xFF
            GOTO    Label_0003
Label_0015  IORWF   FSR       , W
            BTFSS   STATUS    , Z
            MOVLW   0xFF
            GOTO    Label_0003
Label_0003  BCF     STATUS    , IRP
            BCF     STATUS    , RP1
            BCF     STATUS    , RP0
            CLRWDT
            RETURN
Label_0001  MOVLW   0x0C
            MOVWF   FSR
            MOVLW   0x44
            CALL    Label_0002
            BSF     STATUS    , RP0
            MOVLW   0xFF
            MOVWF   TRISA
            CLRF    TRISB
            MOVLW   0x00
            BCF     STATUS    , RP0
            CALL    Label_000F
            ANDLW   0x01
            BTFSC   STATUS    , Z
            BCF     0x36      , 02
            BTFSS   STATUS    , Z
            BSF     0x36      , 02
            BTFSC   PORTA     , 04
            BSF     0x36      , 00
            BTFSS   PORTA     , 04
            BCF     0x36      , 00
            MOVLW   0x00
            BTFSC   PORTA     , 01
            MOVLW   0x01
            MOVWF   0x0C
            MOVLW   0x00
            CALL    Label_0010
            MOVWF   0x1E
            MOVLW   0x00
            BTFSC   PORTA     , 00
            MOVLW   0x01
            MOVWF   0x0C
            MOVLW   0x00
            CALL    Label_0010
            MOVWF   0x20
            MOVF    0x1E      , W
            MOVWF   FSR
            MOVF    0x20      , W
            CALL    Label_0011
            MOVWF   0x20
            MOVWF   0x21
            CLRWDT
            MOVF    0x20      , W
            IORWF   0x21      , W
            BTFSC   STATUS    , Z
            GOTO    Label_0012
            MOVLW   0x20
            MOVWF   0x2A
            MOVLW   0x08
            MOVWF   0x2B
            MOVLW   0x10
            MOVWF   0x2C
            MOVLW   0x04
            MOVWF   0x2D
            MOVLW   0x20
            MOVWF   0x2E
            MOVLW   0x08
            MOVWF   0x2F
            MOVLW   0x10
            MOVWF   0x30
            MOVLW   0x04
            MOVWF   0x31
            GOTO    Label_0013
Label_0012  MOVLW   0x00
            BTFSC   PORTA     , 01
            MOVLW   0x01
            MOVWF   0x0C
            MOVLW   0x00
            CALL    Label_0010
            MOVWF   0x1E
            MOVLW   0x00
            BTFSC   PORTA     , 00
            MOVLW   0x01
            MOVWF   0x0C
            MOVLW   0x01
            CALL    Label_0010
            MOVWF   0x20
            MOVF    0x1E      , W
            MOVWF   FSR
            MOVF    0x20      , W
            CALL    Label_0011
            MOVWF   0x20
            MOVWF   0x21
            CLRWDT
            MOVF    0x20      , W
            IORWF   0x21      , W
            BTFSC   STATUS    , Z
            GOTO    Label_0014
            MOVLW   0x28
            MOVWF   0x2A
            MOVLW   0x18
            MOVWF   0x2B
            MOVLW   0x14
            MOVWF   0x2C
            MOVLW   0x24
            MOVWF   0x2D
            MOVLW   0x28
            MOVWF   0x2E
            MOVLW   0x18
            MOVWF   0x2F
            MOVLW   0x14
            MOVWF   0x30
            MOVLW   0x24
            MOVWF   0x31
            GOTO    Label_0013
Label_0014  MOVLW   0x20
            MOVWF   0x2A
            MOVLW   0x28
            MOVWF   0x2B
            MOVLW   0x08
            MOVWF   0x2C
            MOVLW   0x18
            MOVWF   0x2D
            MOVLW   0x10
            MOVWF   0x2E
            MOVLW   0x14
            MOVWF   0x2F
            MOVLW   0x04
            MOVWF   0x30
            MOVLW   0x24
            MOVWF   0x31
Label_0013  CLRF    0x32
            CLRF    0x33
            CLRF    0x37
Label_001C  MOVLW   0x00
            BTFSC   PORTA     , 03
            MOVLW   0x01
            MOVWF   0x0C
            MOVLW   0x00
            CALL    Label_0010
            MOVWF   0x1E
            MOVLW   0x00
            BTFSC   PORTA     , 04
            MOVLW   0x01
            MOVWF   0x0C
            MOVLW   0x01
            CALL    Label_0010
            MOVWF   0x20
            MOVLW   0x00
            BTFSC   PORTA     , 02
            MOVLW   0x01
            MOVWF   0x0C
            MOVLW   0x00
            BTFSC   0x36      , 02
            MOVLW   0x01
            CALL    Label_0010
            MOVWF   0x22
            MOVF    0x20      , W
            MOVWF   FSR
            MOVF    0x22      , W
            CALL    Label_0011
            MOVWF   0x22
            MOVWF   0x23
            MOVF    0x1E      , W
            MOVWF   FSR
            MOVF    0x22      , W
            IORWF   0x23      , W
            CALL    Label_0015
            MOVWF   0x22
            MOVWF   0x23
            CLRWDT
            MOVF    0x22      , W
            IORWF   0x23      , W
            BTFSC   STATUS    , Z
            GOTO    Label_0016
            CLRWDT
            MOVF    0x32      , W
            MOVWF   0x0C
            MOVF    0x33      , W
            MOVWF   0x0D
            MOVLW   0x17
            MOVWF   0x0F
            MOVLW   0x70
            CALL    Label_0017
            BTFSS   STATUS    , Z
            GOTO    Label_0018
            CLRF    0x32
            CLRF    0x33
            MOVLW   0x28
            ADDWF   0x37      , W
            MOVWF   0x1E
            CLRF    0x1F
            RLF     0x1F      , f
            MOVLW   0xC8
            MOVWF   0x0C
            CLRF    0x0D
            MOVF    0x1F      , W
            MOVWF   0x0F
            MOVF    0x1E      , W
            CALL    Label_0019
            MOVWF   0x37
Label_0018  CLRWDT
            MOVLW   0x01
            SUBWF   0x37      , W
            BTFSS   STATUS    , C
            GOTO    Label_001A
            CLRF    PORTB
            MOVF    0x37      , W
            CALL    Label_001B
Label_001A  INCF    0x32      , f
            BTFSC   STATUS    , Z
            INCF    0x33      , f
            MOVF    0x34      , W
            ADDLW   0x2A
            MOVWF   FSR
            MOVF    INDF      , W
            MOVWF   PORTB
            GOTO    Label_001C
Label_0016  BSF     0x36      , 01
            CLRWDT
            BTFSS   PORTA     , 04
            GOTO    Label_001D
            CLRWDT
            BTFSC   0x36      , 00
            GOTO    Label_001E
            CLRF    EEADR
            MOVLW   0x00
            BTFSC   PORTA     , 02
            MOVLW   0x01
            CALL    Label_001F
            MOVLW   0x0F
            CALL    Label_0020
Label_001E  CLRWDT
            CLRW
            BTFSC   PORTA     , 02
            ADDLW   0x01
            BTFSC   0x36      , 02
            SUBLW   0x01
            BTFSS   STATUS    , Z
            GOTO    Label_001D
            BCF     0x36      , 01
Label_001D  BTFSC   PORTA     , 04
            BSF     0x36      , 00
            BTFSS   PORTA     , 04
            BCF     0x36      , 00
            CLRWDT
            BTFSS   0x36      , 01
            GOTO    Label_0021
            CLRWDT
            BTFSC   PORTA     , 02
            GOTO    Label_0022
            INCF    0x34      , f
            INCF    0x34      , W
            MOVWF   0x35
            CLRWDT
            MOVLW   0x08
            SUBWF   0x34      , W
            BTFSS   STATUS    , C
            GOTO    Label_0023
            CLRF    0x34
            MOVLW   0x01
            MOVWF   0x35
Label_0023  CLRWDT
            MOVF    0x34      , W
            SUBLW   0x07
            BTFSS   STATUS    , Z
            GOTO    Label_0024
            CLRF    0x35
Label_0024  GOTO    Label_0025
Label_0022  CLRWDT
            MOVLW   0x01
            SUBWF   0x34      , W
            BTFSS   STATUS    , C
            GOTO    Label_0026
            DECF    0x34      , f
            GOTO    Label_0027
Label_0026  MOVLW   0x07
            MOVWF   0x34
Label_0027  CLRWDT
            MOVLW   0x01
            SUBWF   0x34      , W
            BTFSS   STATUS    , C
            GOTO    Label_0028
            DECF    0x34      , W
            MOVWF   0x35
            GOTO    Label_0025
Label_0028  MOVLW   0x07
            MOVWF   0x35
Label_0025  CLRWDT
            BTFSC   PORTA     , 04
            GOTO    Label_0021
            BTFSC   PORTA     , 02
            BSF     0x36      , 02
            BTFSS   PORTA     , 02
            BCF     0x36      , 02
Label_0021  CLRWDT
            BTFSS   PORTA     , 03
            GOTO    Label_0029
            CLRWDT
            GOTO    Label_0021
Label_0029  MOVF    0x34      , W
            ADDLW   0x2A
            MOVWF   FSR
            MOVF    INDF      , W
            MOVWF   PORTB
            MOVLW   0x00
            BTFSC   PORTA     , 01
            MOVLW   0x01
            MOVWF   0x0C
            MOVLW   0x01
            CALL    Label_0010
            MOVWF   0x1E
            MOVLW   0x00
            BTFSC   PORTA     , 00
            MOVLW   0x01
            MOVWF   0x0C
            MOVLW   0x01
            CALL    Label_0010
            MOVWF   0x20
            MOVF    0x1E      , W
            MOVWF   FSR
            MOVF    0x20      , W
            CALL    Label_0011
            MOVWF   0x20
            MOVWF   0x21
            CLRWDT
            MOVF    0x20      , W
            IORWF   0x21      , W
            BTFSC   STATUS    , Z
            GOTO    Label_002A
            MOVLW   0x03
            MOVWF   0x0D
            MOVLW   0x20
            CALL    Label_0005
            MOVF    0x35      , W
            MOVWF   0x34
            MOVF    0x34      , W
            ADDLW   0x2A
            MOVWF   FSR
            MOVF    INDF      , W
            MOVWF   PORTB
Label_002A  GOTO    Label_0013
Label_002B  SLEEP
            GOTO    Label_002B
 
            ORG     0x2000
            DATA    0x0F
            DATA    0x0F
            DATA    0x0F
            DATA    0x0F
 
            ORG     0x2007
            DATA    0x15
 
            ORG     0x2100
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF
            DATA    0xFF

            END



Desconectado sansanoloko

  • PIC10
  • *
  • Mensajes: 48
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #14 en: 30 de Agosto de 2009, 23:43:17 »
Hola sokoloko

La ausencia de comentarios en tu codigo fuente se debe a que no tienes el archivo .asm original, sino que tienes un código desensamblado desde un archivo .hex

Lo que puedo deducir de este código desensamblado son tres cosas cosas:
- El programador original escribió el código en un ensamblador demasiado básico, pero funcional a sus requerimientos, o
- El mismo programador escribió el programa en un lenguaje de alto nivel para microcontroladores PIC (BASIC, C, etc.), lo que explicaría el código tan extenso, para una función tan trivial en este mundillo, como lo es el control de un motor PAP.
- En este programa no se utilizan interrupciones de ningun tipo.

Para este caso, te recomiendo hacer el programa desde cero, o basado en uno existente (en este mismo foro hay muuucha info al respecto), pero lo mas importante, un programa que tu entiendas de forma muy clara, ya que te permitirá tener un control absoluto sobre el proyecto, y una flexibilidad invaluable en el desarrollo del mismo.
Si deseas optar por ese camino, cuenta con mi apoyo, de todas maneras voy a analizar el código que publicaste, para ver si podemos hacer algo con eso.

Saludos a quienes nos leen.