Autor Tema: Ayuda con 16F628a  (Leído 3201 veces)

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

Desconectado tatonator

  • PIC10
  • *
  • Mensajes: 3
Ayuda con 16F628a
« en: 17 de Junio de 2004, 15:18:00 »
Una peregunta,
¿ Por que un programa tan simple como un intermitente, me funciona bien en un 16F84a,  pero no funciona en un 16F628a?, el progama esta hecho en PBP y compilado en el ensamblador de Microchip  

    Ante todo gracias





Desconectado Leonsport

  • PIC12
  • **
  • Mensajes: 88
RE: Ayuda con 16F628a
« Respuesta #1 en: 17 de Junio de 2004, 16:20:00 »
mirate bien el datasheet del pic y seguramente encuentres la solucion.
De todas formas si expones tu programa igual t ayudamos con mayor seguridad.
salu2

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Ayuda con 16F628a
« Respuesta #2 en: 17 de Junio de 2004, 17:05:00 »
Hola :
Creo que tan sencillo como que no le agregaste a tu programa la instruccion CMCON = 7 que como el 628 tiene comparadores ,le tienes que DECIR al micro que quieres todas las entradas digitales (como el F84) ,con esa instruccion desabilitas los comparadores y el micro queda igual que un 84.Espero sea la solucion..
Suerte
khasistos

Desconectado tatonator

  • PIC10
  • *
  • Mensajes: 3
RE: Ayuda con 16F628a
« Respuesta #3 en: 17 de Junio de 2004, 21:18:00 »
 Bueno este es el programita que si funciona con el F84, y no funciona con el F628,

   
    LED VAR BYTE            "Aqui se define la variable LED como byte
    PORTB =%00000000    "Se inicializa todo el purto B como salidas
   TRISB =%00000000    "Puerto B como todo salidas
     
    MAIN                    "Etiqueta para el inicio del bucle
   
    for led = 0 to 7        "Inicia el bucle en todos los leds
    PORTB.0 [LED]=1         "Setea cada pin del PB a estado alto (5v)
    pause 100            "Tiempo de estado alto del led (iluminado)
    PORTB.0[LED]=0          "Setea cada pin del puerto B a low (0V)
    next
    for led =7 to 0 step -1
    PORTB.0 [LED]=1
    pause 100
    PORTB.0[LED]=0
    next
    goto MAIN
    END


 Por cierto, como añado la instruccion CMCON=7

Bueno, investigando investigando;

el programita me sale tal que así

ASM
CMCON = 7
ENDASM

    LED VAR BYTE            "Aqui se define la variable LED como byte
    PORTB =%00000000    "Se inicializa todo el purto B como salidas
   TRISB =%00000000    "Puerto B como todo salidas
     
    MAIN                    "Etiqueta para el inicio del bucle
   
    for led = 0 to 7        "Inicia el bucle en todos los leds
    PORTB.0 [LED]=1         "Setea cada pin del PB a estado alto (5v)
    pause 100            "Tiempo de estado alto del led (iluminado)
    PORTB.0[LED]=0          "Setea cada pin del puerto B a low (0V)
    next
    for led =7 to 0 step -1
    PORTB.0 [LED]=1
    pause 100
    PORTB.0[LED]=0
    next
    goto MAIN
    END

Y VA QUE NO VEAIS,,,,,,,


 Ante todo muchas gracias,

 Empleo PBP 2.45, y microcode Studio, para programar uso el Winpic800 (buenisimo) y una modesta placa TE20 , Saludos desde Valencia (España)

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: Ayuda con 16F628a
« Respuesta #4 en: 18 de Junio de 2004, 14:40:00 »
Hola :

asm device wdt_off, bod_off, intrc_osc_noclkout, pwrt_on, lvp_off, cpd_off endasm

CMCON = 7

Con este inicio no debes tener ningun problema de compatibilidad ,,,OJO fijate que los fuses estan para oscilador INTERNO, si no lo cambias a tu tipo de oscilador que estes usando ,pero asi funciona todo en el 627/628 ,,,tienes mal colocado el ASM //ENDASM

Saludos
khasistos