TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: lorcho en 29 de Mayo de 2011, 19:55:20
-
Hola, estoy haciendo un antirebote con un pic.
Al empezar a compilar con el MPLAB ya me da estos 4 errores:
----------------------------------------------------------------------
Release build of project `C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.disposable_mcp' started.
Language tool versions: MPASMWIN.exe v5.41, mplink.exe v4.39, mplib.exe v4.39
Mon May 30 00:53:13 2011
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPASMWIN.exe" /q /p12F629 "PRUEBA1.ASM" /l"PRUEBA1.lst" /e"PRUEBA1.err"
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.ASM 26 : Symbol not previously defined (status)
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.ASM 26 : Symbol not previously defined (rp0)
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.ASM 29 : Symbol not previously defined (status)
Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.ASM 29 : Symbol not previously defined (rp0)
Halting build on first failure as requested.
----------------------------------------------------------------------
Release build of project `C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR.DESKTOP\MIS DOCUMENTOS\PRUEBA1.disposable_mcp' failed.
Language tool versions: MPASMWIN.exe v5.41, mplink.exe v4.39, mplib.exe v4.39
Mon May 30 00:53:13 2011
----------------------------------------------------------------------
BUILD FAILED
Que son en las líneas que cambio de banco de memoria . Alguien sabe porque puede ser esto, alguna vez programe el 16f84A. Ló único que necesito es un programa que cuando tenga un cambio en el estado de una patilla del micro, cambie una salida a 1 e iugnore los demás pulsos hasta que pase x tiempo. Es una lectura, poner a 0 una salida, retardo Xms y vuelve a la espera de señal en la patilla de entrada. Muy sencillo, pues llevo más de 1 semana. Muchas gracias por anticipado.
ADJUNTO CÓDIGO:
LIST P=12F629
INCLUDE P12F629.INC
ERRORLEVEL -302
__CONFIG _CPD_OFF & _CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
CBLOCK 0X20
;espacio para la declaracion de variables
ENDC
#define salida GPIO,2
#define entrada GPIO,3
ORG 00
GOTO CONFIGURA
;espacio para las subrrutinas
CONFIGURA NOP
CLRF GPIO
MOVLW B'00000111' ; 07H Configuro GP1, GP2, GP3 como pines
MOVWF CMCON ; digitales
BANKSEL OSCCAL ;para calibrar el oscilador interno
CALL 3FFH ; Obtengo el valor de calibracion del oscilador
MOVWF OSCCAL
CLRF TRISIO
BANKSEL GPIO
bsf status, rp0 ;bank 1
movlw b'0001000' ;(x= don't care = does not matter)
movwf TRISIO ;the lowest bit will be an OUTPUT
bcf status, rp0 ;bank 0
;Programa principal
CICLO
GOTO CICLO
END
-
parece que el problema esta en tu archivo del pic, entra a checarlo y ve si dentro esta definido el registro status.
-
Hola, si está, en el banco 0, adjunto el código del archivo.
;-----Bank0------------------
INDF EQU H'0000'
TMR0 EQU H'0001'
PCL EQU H'0002'
STATUS EQU H'0003' <--------
FSR EQU H'0004'
GPIO EQU H'0005'
PCLATH EQU H'000A'
INTCON EQU H'000B'
PIR1 EQU H'000C'
TMR1L EQU H'000E'
TMR1H EQU H'000F'
T1CON EQU H'0010'
CMCON EQU H'0019'
-
tal vez sea esto, intenta poner STATUS con mayusculas, a ver que pasa
-
Era eso, que cosas. Es lo que tiene llevar tiempo sin programar, llevo 1 hora peleando con un btfss y un btfsc. Tengo que añadirle un retardo para que el pic este ocupado e ignore la entrada del sensor durante aprox medio segundo Estoy buscandolo por el foro, que lo vi a la tarde. Gracias por la ayuda.
-
Tengo que añadirle un retardo para que el pic este ocupado e ignore la entrada del sensor durante aprox medio segundo Estoy buscandolo por el foro, que lo vi a la tarde.
Para los retardos aqui esta.
http://www.todopic.com.ar/foros/index.php?topic=5968.0
-
Gracias! Ya lo estoy mirando. Al final deje los precisos sensores de vibración y me pase a los dos contactos y arandela, que son más efectivos, y practicamente no rebote. Para este proyecto creo que voy a intentar eliminar ese rebote con componentes pasivos, pero no doy encontrado los valores correctos. Creo que con un retardo de 250 ms me llegaría. A ver si llego a ellos.
Gracias de nuevo.