Webcampista.com

mucho más que un foro

Ayuda de los compañeros caravanistas

Yo no creo que haga falta ni los procesos, que cada vez que interrumpa lo mire todo, si no tiene otra cosa que hacer.

La verdad es que es un programa tan simple que no merece la pena complicarse la vida con timer ni con interrupciones, pero si lo hace asi podrá jugar con todos los resortes internos del PIC que es de lo que se trata.

Dedalo, recuerda que le gustaría escribirlo a él. :D

Hombre, yo le escribo trozos de codigo con suposiciones que el probablemente no escriba, supongo que este programa que he escrito no funcionará directamente, pues lo he hecho en 15 minutos y no lo he depurado. habrá que estudiarlo y depurarlo, pero recuerdo cuando yo empezaba que tomaba trozos de todas partes para saber como se hacian las cosas y me fue muy util leer como hacian las cosas gente con mas experiencia. Si algun trozo de codigo le sirve mejor, y si no le sirve ninguno, si que le puede servir la forma de estructurar el programa, que en assembler es importante.
 
Amigo Navegante, buenas tardes. Nos acabas de demostra a todos dos cosas importantes, la primera que eres un electrónico de aupa, o al menos esa impresión nos has dejado, yo que soy nulo en esto de la electrónica, no tengo ni idea de que puede ser esto, espero que sea la bomba y que empieces a fabricar en serie para todos nosotros. Pero la otra parte que nos has enseñado es que eres el rey del suspense, nos tienes a todos en vilo como si fuera la mejor pelicula de suspense.
Asi que a esperar a que nos cuentes de que va el artefacto que te has preparado.

Animo y a seguir inventando.

Muchas gracias por el cumplido, pero, no soy electrónico, solamente un estudiente..

lo del suspense es por debilidad profesional..... son muchos años de comercial.....
 
Creí que era para uso personal, ya veo que estás pensando comercializarlo :D


Pues ahora que lo dices............ no estaria mal unos ingresos extras ahora que estoy en el paro........ jejejejejejejeje
 
Aqui una muestra de como puede ser ese codigo.

Uno de los procesos se deberia dedicar a encontrar situaciones de error, como por ejemplo el freno puesto y el motor en marcha, o la bateria de la CV baja

Código:
;===============================================================================
; Programa de gestion de la energia en la CV
;===============================================================================
;===============================================================================
; Distribucion de la RAM y definiciones de bits
;===============================================================================
 
PROCESO  EQU 0x10   ; Contador de proceso atendido
PROCTEMP EQU 0x12   ; Temporal proceso atendido
TIEMPO  EQU 0x11   ; Contador de tiempo
 
#DEFINE  PIÑA PORTA,0x00  ; Pin 9 de la piña (piña conectada)
#DEFINE  MOTOR PORTA,0x01  ; Pin 12 de la piña (motor en marcha)
#DEFINE  BATERIA PORTA,0x02  ; Bateria de la CV conectada
#DEFINE  FRENO PORTA,0x03  ; Micro en el freno de la CV
#DEFINE  BATBAJA PORTA,0x04  ; Pin 9 de la piña (piña conectada)
 
;===============================================================================
; Vector de reset
;===============================================================================
        ORG 0x0000
        GOTO RESET   ; Saltamos a la rutina de reset
;===============================================================================
; Vector de interrupcion
;===============================================================================
        ORG 0x0004
;===============================================================================
; Interrupcion TMR0. Se produce una interrupcion cada 256 uS
; con un cuarzo de 4 MHz. Con un contador reducimos la ejecucion
; de la INT solo a una vez cada 65 ms,
;===============================================================================
INT_TMR:
        BTFSS INTCON,T0IF  ; Si no es T0IF
        GOTO FIN_INT   ; salimos de la rutina de interrupcion
        DECFSZ TIEMPO,F  ; Si no es momento
        GOTO FIN_INT   ; salimos de la rutina de interrupcion
;===============================================================================
; Seleccion del proceso a ejecutar
;===============================================================================
        INCF PROCESO,W  ; Proceso siguiente
        ANDLW 0x07   ; limitamos el numero de procesos a 8
        MOVWF PROCESO
        MOVWF PROCTEMP  ; Guardamos el proc. actual
 
;===============================================================================
; Proceso 1  ATC
;===============================================================================
PROC_1:
        DECFSZ PROCTEMP,F  ; Si no es el 1
        GOTO PROC_2   ; Pasamos al siguiente
        BTFSS PIÑA   ; Si al piña esta conectada...
        GOTO NO_ATC
        BTFSS MOTOR   ; El motor esta en marcha...
        GOTO NO_ATC
        BTFSC FRENO   ; El freno esta quitado...
        GOTO NO_ATC
        BSF RELE_ATC  ; se conecta el ATC
        GOTO FIN_INT   ; y terminamos
NO_ATC:
        BCF RELE_ATC  ; caso contrario desconecta el ATC
        GOTO FIN_INT   ; y terminamos
 
;===============================================================================
; Proceso 2  ALUMBRADO desde la piña
;===============================================================================
PROC_2:
        DECFSZ PROCTEMP,F  ; Si no es el 2
        GOTO PROC_3   ; Pasamos al siguiente
        BTFSS PIÑA   ; Si al piña esta conectada...
        GOTO NO_ALP
        BTFSC MOTOR   ; y el motor esta parado...
        GOTO NO_ALP
        BSF RELE_ALP  ; se conecta el alumbrado a la piña
        GOTO FIN_INT   ; y terminamos
NO_ALP:
        BCF RELE_ALP  ; caso contrario desconecta el alumbrado
        GOTO FIN_INT   ; y terminamos
 
;===============================================================================
; Proceso 3  ALUMBRADO desce la bateria de la CV
;===============================================================================
PROC_3:
        DECFSZ PROCTEMP,F  ; Si no es el 3
        GOTO PROC_4   ; Pasamos al siguiente
        BTFSC PIÑA   ; Si al piña esta desconectada...
        GOTO NO_ALB
        BTFSS BATERIA   ; y la bateria de la CV esta conectada...
        GOTO NO_ALB
        BTFSC BATBAJA   ; y la bateria no esta baja...
        GOTO NO_ALB
        BSF RELE_ALB  ; se conecta el alumbrado a la piña
        GOTO FIN_INT   ; y terminamos
NO_ALB:
        BCF RELE_ALB  ; caso contrario desconecta el alumbrado
        GOTO FIN_INT   ; y terminamos
;===============================================================================
; Proceso 4  MOVEDOR
;===============================================================================
PROC_4:
        DECFSZ PROCTEMP,F  ; Si no es el 4
        GOTO PROC_5   ; Pasamos al siguiente
        BTFSC PIÑA   ; Si al piña esta desconectada...
        GOTO NO_MOV
        BTFSS BATERIA   ; la bateria de la CV esta conectada...
        GOTO NO_MOV
        BTFSC BATBAJA   ; la bateria no esta baja...
        GOTO NO_MOV
        BTFSC FRENO   ; y no esta puesto el freno de la CV...
        GOTO NO_MOV
        BSF RELE_MOV  ; se conecta el movedor
        GOTO FIN_INT   ; y terminamos
NO_MOV:
        BCF RELE_MOV  ; caso contrario desconecta el movedor
        GOTO FIN_INT   ; y terminamos
;===============================================================================
; Proceso 5
;===============================================================================
PROC_5:
        DECFSZ PROCTEMP,F  ; Si no es el 5
        GOTO PROC_6   ; Pasamos al siguiente
 
 
; Aqui se pone el codigo correspondiente al proceso cinco
; Debe terminar con un salto a FIN_INT
        GOTO FIN_INT
 
;===============================================================================
; Proceso 6
;===============================================================================
PROC_6:
        DECFSZ PROCTEMP,F  ; Si no es el 6
        GOTO PROC_7   ; Pasamos al siguiente
 
; Aqui se pone el codigo correspondiente al proceso seis
; Debe terminar con un salto a FIN_INT
        GOTO FIN_INT
 
;===============================================================================
; Proceso 7
;===============================================================================
PROC_7:
        DECFSZ PROCTEMP,F  ; Si no es el 7
        GOTO PROC_8   ; Pasamos al siguiente
 
; Aqui se pone el codigo correspondiente al proceso siete
; Debe terminar con un salto a FIN_INT
        GOTO FIN_INT
 
;===============================================================================
; Proceso 8
;===============================================================================
PROC_8:
; Aqui se pone el codigo correspondiente al proceso cinco
; Debe terminar con un salto a FIN_INT
        GOTO FIN_INT
 
;===============================================================================
; Salir de la interrupcion
;===============================================================================
 
FIN_INT:
        BCF INTCON,T0IF  ; Restauramos los bits de interrupcion
        RETFIE    ; Terminamos interrupcion
 
;===============================================================================
; Preparacion de la interrupcion y bucle principal
;===============================================================================
RESET:
        MOVLW 0x00
        MOVWF PROCESO   ; El primer proceso a ejecutar es el 0
        BSF STATUS, RP0
        MOVLW 0x1F
        MOVWF TRISA   ; Puerto A es entrada en todos sus bits
        MOVLW 0x00
        MOVWF TRISB   ; Puerto B es salida en todos sus bits
        MOVLW b'11011111'  ; Ajuste del timer
        MOVWF OPTION_REG
        BCF STATUS,RP0
        MOVLW b'10100000'
        MOVWF INTCON   ; Habilitamos interrupcion del TMR0
BUCLE:
        SLEEP
        GOTO BUCLE   ; Sueño eterno...
 
END


Si me das permiso, haber si tengo 5 segundos y lo ensamblo y cargo en el simulardor haber que tal va.....
 
ya lo tengo, ya lo tengo, :bounce:

LA GALLINA
.


Ahora en serio,
alguien me puede decir si ha dicho ya lo que es.. me perdi hace algun tiempo, solo veo una nube de diodos, electrodos, npn (ni puñetera nocion), spekap y otras cosas que no se si son decentes o no por la forma en como suenan.
un saludo y continuad asi, pues asi se sorprende al mundo.
 
Arriba
© 2004-2024 Webcampista.com