TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: tatonator 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
-
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
-
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
-
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)
-
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