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

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

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #15 en: 31 de Agosto de 2009, 06:20:02 »
Ese programa para mi es imposible de entender, ahi es muy dificil saber lo que es cada cosa, no hay comentarios, no se definen los reg que podrian dar alguna pista y las etiquetas tampoco. Te voy a poner un programa sencillo hecho por mi, asi que no te fies  :lol: , es un programa para mover un PAP en un sentido de giro cada 200ms, 5 pasos por seg. esto lo puedes modificar facilmente a tu gusto, asi como ponerle los pulsadores, este se mueve a medios pasos, pero si quieres tambien se puede mover de paso a paso, haciendo los pares o impares segun quieras mas o menos torque y movimientos mas bruscos o mas suaves.
El prgrama en el MPLAB funciona bien. Espero que te sirva como base para el tuyo.

LIST   P=16F84A,            ; usar PIC 16F84A
   #include <p16f84A.inc>

   __CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC
CBLOCK   0x0C
   contador   ; contador para mover el motor
   PDel0      ; reg. para el retardo
   PDel1
ENDC



   


   org   0X00
   goto   INICIO
   org   0x04


TABLA
   addwf   PCL,1      ; tabla de movimientos del motor
   retlw   0x08
   retlw   0x0C
   retlw   0X04
   retlw   0X06
   retlw   0X02
   retlw   0X03
   retlw   0X01
   retlw   0X09
   clrf   contador   ; cuando desborda va aqui
   goto   MOVER   
INICIO
   bsf   STATUS,5
   movlw   0xF0      ; ponemos rb0 a rb3 salidas para puente H
   movwf   TRISB
   movlw   0x1F      ; PORTA todo entradas
   movwf   PORTA
   bcf   STATUS,5
   clrf   PORTB      ; contador a 0 para empezar por primer movimiento
   clrf   contador
MOVER

   movfw   contador   ; mover contador con primer mov. a W para llamar tabla
   call   TABLA      ; llamamos tabla
   movwf   PORTB      ; lo movemos PORTB
   incf   contador,1   ; incrementamos en 1 contador para siguiente movimiento
   call   DEMORA      ; llamamos demora de 200 ms para mov. de 5HZ
   goto   MOVER      ; empezamos ciclo para siguiente movimiento



DEMORA             ; demora de 200ms hecho con el picdel
   movlw     .156      ; 1 set numero de repeticion  (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .213      ; 1 set numero de repeticion  (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
PDelL1  goto PDelL2         ; 2 ciclos delay
PDelL2 
        decfsz    PDel1, 1  ; 1 + (1) es el tiempo 0  ? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) es el tiempo 0  ? (B)
        goto      PLoop1    ; 2 no, loop
PDelL3  goto PDelL4         ; 2 ciclos delay
PDelL4  clrwdt              ; 1 ciclo delay
        return              ; 2+2 Fin.
      END   

Desconectado sokoloko

  • PIC12
  • **
  • Mensajes: 77
Re: Ayuda programar PIC control PAP Bipolar
« Respuesta #16 en: 31 de Agosto de 2009, 11:49:09 »
Hola,

Lo primero de todo, es alegrarme por el tema del codigo, ya pensaba yo que era un zoquete y que no entendia nada. Ver que para expertos como vosotros  ese codigo tmb es complicado.....es un gran consuelo  :D.

Como no se Sansanoloko ni quien ni como escribio el codigo, seguire los consejos vuestros y empezare desde cero. Asi q.......armaros de paciencia!!!! jeje.

Voy a investigar un poco y ya os pongo mis "pequeños" progresos. 8)

De momento muchas gracias tapi8 por el codigo, ya toy metido con el como "primer tutorial".

Gracias y saludos.