miércoles, marzo 16, 2005

PC FROM MARS

Desde hace algo más de una semana estoy liado - nunca mejor dicho - en un curso de programación con fines ocupacionales; concretamente en un curso de Analista Programador. Hacemos softwares raros - más aún para una mente forjada en los entresijos de las Humanidades - para controlar automatizaciones varias mediante chips. La cosa es muy extraña, aunque paradojicamente tiene su gracia, y día que pasa le veo más el sentido del asunto. Sin embargo, dista mucho mi comprensión de ser lo suficientemente formada en estas cosas para entender el sentido último de lo hecho - defecto profesional, lo admito - en el caso de que tenga uno más allá de lo funcional...

Para muestra de lo hablado, un botón:

list p=16f877 ; list directive to define processor
#include ; processor specific variable definitions

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _HS_OSC & _WRT_ENABLE_OFF & _LVP_OFF & _DEBUG_OFF & _CPD_OFF


#DEFINE PULSADOR_1 PORTB,0
#DEFINE PULSADOR_2 PORTB,1
#DEFINE PULSADOR_PARO PORTB,3
#DEFINE LED PORTB,7

R_IMA_IN EQU 20
R_IMA_OUT EQU 21

#DEFINE I_PULSADOR_1 R_IMA_IN,0
#DEFINE I_PULSADOR_2 R_IMA_IN,1
#DEFINE I_PULSADOR_PARO R_IMA_OUT,3
#DEFINE I_LED R_IMA_OUT,7

ORG 0
NOP
GOTO CONFIG_PIC
ORG 5

CONFIG_PIC
BSF STATUS,RP0
BCF OPTION_REG,NOT_RBPU
BCF LED
BCF STATUS,RP0
BSF LED
CLRF R_IMA_IN
CLRF R_IMA_OUT

PRINCIPAL
CALL CARGAR_IMA
CALL CONTROL_PULSADOR_1
CALL CONTROL_PULSADOR_2
CALL CONTROL_LED_1
CALL CONTROL_LED_2
CALL CONTROL_PARO
CALL TRANSFERIR
GOTO PRINCIPAL

CARGAR_IMA
COMF PORTB,W
MOVWF R_IMA_IN
RETURN

CONTROL_PULSADOR_1
BTFSS I_PULSADOR_1
RETURN
BSF I_PULSADOR_1
RETURN

CONTROL_PULSADOR_2
BTFSS I_PULSADOR_2
RETURN
BSF I_PULSADOR_2
RETURN

CONTROL_LED_1
BTFSS I_PULSADOR_1
RETURN
BTFSS I_PULSADOR_2
RETURN
BTFSS I_PULSADOR_1
RETURN
BSF I_LED
RETURN

CONTROL_LED_2
BTFSS I_PULSADOR_2
RETURN
BTFSS I_PULSADOR_1
RETURN
BTFSS I_PULSADOR_2
RETURN
BSF I_LED
RETURN

CONTROL_PARO
BTFSS I_LED
RETURN
BTFSS I_PULSADOR_PARO
RETURN
CLRF R_IMA_OUT
RETURN

TRANSFERIR
COMF R_IMA_OUT,W
MOVWF 7
RETURN

END

Esto sirve para gestionar la secuencia de dos botones y un LED ( regulador óptico ). Teóricamente tendría que funcionar a lo cual admiraría el temerario que lo intentase instalar XD.

2 comentarios:

Anónimo dijo...

Hello,
0_0 UFFFF,... no tinc moltes paraules a dir després de llegir la fórmula per gestionar la secuencia de dos botons i un LED... (Menys mal que només és això; perquè quan siguin més botons,... no se jo...). Segurament que té funcionalitat, però el que si et puc dir
és que té molt de mèrit el que estàs fent. No exagero, pensa que et parla algú que a vegades (i només a vegades) es baralla amb els artilugis ( a recordar, les màquines del metro).... XD
Kisses. you GIRL

linus dijo...

Sips, és molt liat... S'ha de dir que em defenso en això de programar, no tant potser com el ritme endemoniat del curs exigeix, però fent el possible. Si més no, ara nocions de com representa que van els programes i ginys controlats informàticament en vaig tenint...