Hola Maunix, aqui esta el encabezado del programa para el 12c508a
LIST P = 12C508A
INCLUDE <P12C508A.inc>
__CONFIG _CP_OFF & _WDT_OFF & _MCLRE_OFF & _IntRC_OSC
#DEFINE ACTPWM bcf
#DEFINE DESPWM bsf
#DEFINE PIN GPIO,3 ;Pin de entrada de Señal Receptor
#DEFINE PBAT GPIO,4 ;Pin de entrada de Señal de la bateria
#DEFINE PSTOP GPIO,1 ;Pin de salida de MOSFET FRENO
#DEFINE POUT GPIO,2 ;Pin de salida de PWM MOSFET
#DEFINE EEPREV FLAGS,0 ;Estado previo de la entrada
#DEFINE TEST FLAGS,5 ;Define de prueba del programa
#DEFINE NbPLow .24 ;Relacion de pasos que detecta la posicion LOW de la palanca IpwmHref-1
#DEFINE IpwmHrf .48 ;Relacion de Frecuencias entre PWMIN - PWMOUT
#DEFINE OpwmFrec .23 ;Pasos del ciclo de las señal de salida
#DEFINE pStop .200 ;Pasos de retardo para activar el Freno 14x200x50us=140ms
#DEFINE pBat .200 ;Pasos de verificacion de caida de la bateria 200x50us=10ms
#DEFINE pRecOff .200 ;Pasos de de verificacion de apagao del receptor 200x50usx14=140ms
IpwmH EQU 07h ;Variable con los pasos del estado H de la entrada
OpwmH EQU 08h ;Variable con los pasos del estado H de la salida
CpwmF EQU 09h ;Contador de pasos de la frecuencia de salida
CpwmH EQU 0Ah ;Contador del estado H de la salida
CpBat EQU 0Bh ;Contador de pasos del estado de la bateria Low
CpStop EQU 0Ch ;Contador de pasos para retardar la activacion del freno
CpROff EQU 0Dh ;Contador de pasos para detectar el receptor apagado
FLAGS EQU 0Eh ;Flags
CTmp1 EQU 0Fh ;Variable temporal de contador
CTmp2 EQU 10h ;Variable temporal de contador
CTmp3 EQU 11h ;Variable temporal de contador
CTmp4 EQU 12h ;Variable temporal de contador
RESET
org 00h
movwf OSCCAL
movlw b"11000000" ;Configuro el registro OPTION
OPTION
movlw b"11111001" ;Todas entradas menos gpio,2 -> salidaPWM y gpio,1 -> FRENO
tris GPIO
bcf PSTOP ;Desactivo el freno
NOP
DESPWM POUT ;Desactivo la señal de Salida de PWM
INITVAR
clrf FLAGS
clrf IpwmH
movlw pStop
movwf CpStop
movlw pBat
movwf CpBat
movlw pRecOff
movwf CpROff
movlw OpwmFrec
movwf CpwmF
movlw .1
movwf CpwmH
movwf OpwmH
con este ya no tengo ningun error, mensaje o warning al generar el hex. Hice los cambios respectivos para el 12f629 que estan en negrita, el programa es el siguiente
LIST P = 12F629
INCLUDE <P12F629.inc>
__CONFIG _CP_OFF & _WDT_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT
#DEFINE ACTPWM bcf
#DEFINE DESPWM bsf
#DEFINE PIN GPIO,3 ;Pin de entrada de Señal Receptor
#DEFINE PBAT GPIO,4 ;Pin de entrada de Señal de la bateria
#DEFINE PSTOP GPIO,1 ;Pin de salida de MOSFET FRENO
#DEFINE POUT GPIO,2 ;Pin de salida de PWM MOSFET
#DEFINE EEPREV FLAGS,0 ;Estado previo de la entrada
#DEFINE TEST FLAGS,5 ;Define de prueba del programa
#DEFINE NbPLow .24 ;Relacion de pasos que detecta la posicion LOW de la palanca IpwmHref-1
#DEFINE IpwmHrf .48 ;Relacion de Frecuencias entre PWMIN - PWMOUT
#DEFINE OpwmFrec .23 ;Pasos del ciclo de las señal de salida
#DEFINE pStop .200 ;Pasos de retardo para activar el Freno 14x200x50us=140ms
#DEFINE pBat .200 ;Pasos de verificacion de caida de la bateria 200x50us=10ms
#DEFINE pRecOff .200 ;Pasos de de verificacion de apagao del receptor 200x50usx14=140ms
IpwmH EQU 20h ;Variable con los pasos del estado H de la entrada
OpwmH EQU 21h ;Variable con los pasos del estado H de la salida
CpwmF EQU 22h ;Contador de pasos de la frecuencia de salida
CpwmH EQU 23h ;Contador del estado H de la salida
CpBat EQU 24h ;Contador de pasos del estado de la bateria Low
CpStop EQU 25h ;Contador de pasos para retardar la activacion del freno
CpROff EQU 26h ;Contador de pasos para detectar el receptor apagado
FLAGS EQU 27h ;Flags
CTmp1 EQU 28h ;Variable temporal de contador
CTmp2 EQU 29h ;Variable temporal de contador
CTmp3 EQU 2Ah ;Variable temporal de contador
CTmp4 EQU 2Bh ;Variable temporal de contador
RESET
org 00h
movwf OSCCAL
movlw b"000000" ;Configuro el registro OPTION
movwf OPTION_REG
movlw b"111001" ;Todas entradas menos gpio,2 -> salidaPWM y gpio,1 -> FRENO
movwf TRISIO
bcf PSTOP ;Desactivo el freno
NOP
DESPWM POUT ;Desactivo la señal de Salida de PWM
INITVAR
clrf FLAGS
clrf IpwmH
movlw pStop
movwf CpStop
movlw pBat
movwf CpBat
movlw pRecOff
movwf CpROff
movlw OpwmFrec
movwf CpwmF
movlw .1
movwf CpwmH
movwf OpwmH
y me genera los siguientes mensajes:
Message[302] C:WINDOWSESCRITORIOASM629512F629-MPASWIN.ASM 86 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:WINDOWSESCRITORIOASM629512F629-MPASWIN.ASM 89 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:WINDOWSESCRITORIOASM629512F629-MPASWIN.ASM 92 : Register in operand not in bank 0. Ensure that bank bits are correct.
el primero corresponde a la linea del
org 00h,
el segundo corresponde al
movwf OPTION_REG,
y el tercero al
bcf PSTOP ;Desactivo el freno
he probado tambien configurado la pagina para asegurarme que este en el bank 1 con STATUS y nada, realmente son importantes estos mensajes o los puedo obviar sin problemas posteriores.
Te puedo enviar un correo con los archivos para asi me puedas indicar que errores estoy cometiendo. Desde ya te agradezco por tu tiempo.
Saludos