Autor Tema: Consulta con la interrupcion INT?  (Leído 2424 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado rnelson

  • PIC12
  • **
  • Mensajes: 53
Consulta con la interrupcion INT?
« en: 10 de Marzo de 2006, 14:59:00 »
Saludos a todos.

Queria que me ayudaran a aclarar una duda:

Tengo un asm en funcion de la interrupcion INT, el mismo espera a que esta suceda para realizar un conteo indefinido, el problema es que quiero detener ese conteo y no se como, sera que puedo utilizar nuevamente la interrupcion modificando el software para cuando vuelva a suceder la iterrupcion ejecute otra cosa???

Esperando respuesta me despido

Atte.

Nelson

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Consulta con la interrupcion INT?
« Respuesta #1 en: 10 de Marzo de 2006, 15:59:00 »
Escrito originalmente por rnelson
Saludos a todos.

Queria que me ayudaran a aclarar una duda:

Tengo un asm en funcion de la interrupcion INT, el mismo espera a que esta suceda para realizar un conteo indefinido, el problema es que quiero detener ese conteo y no se como, sera que puedo utilizar nuevamente la interrupcion modificando el software para cuando vuelva a suceder la iterrupcion ejecute otra cosa???

Esperando respuesta me despido

Atte.

Nelson


Interrupcion INT? cual es esa interrupcino?
Podrias aclarar de que microcontrolador estas hablando?
Podrias postear el código que te presenta problemas?
Lo de ejecutar una vez una cosa y otra vez otra cosa, es perfectamente posible, guardas en una variable que ya pasaste por ahi y la 2da vez que pasas, vas a otro lado.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado rnelson

  • PIC12
  • **
  • Mensajes: 53
RE: Consulta con la interrupcion INT?
« Respuesta #2 en: 10 de Marzo de 2006, 18:12:00 »
Diculpa Mauricio tienes razon.

El pic que estoy utilizando es el 16f628a y la interrupcion que comento en la del RB0/INT, el asm no lo puedo postear porque apenas lo estoy desarrollando, no lo he probado pero el mismo es un cronometro que al recibir un pulso por el RB0 arranque a contar y si recibe nuevamente un pulso se detenga manteniendo el tiempo en los display.

Gracias por tu ayuda, en cuanto tenga algo con el asm lo subo, de eso no te queden dudas.

Saludos

Nelson

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Consulta con la interrupcion INT?
« Respuesta #3 en: 11 de Marzo de 2006, 05:33:00 »
Escrito originalmente por rnelson
Diculpa Mauricio tienes razon.

El pic que estoy utilizando es el 16f628a y la interrupcion que comento en la del RB0/INT, el asm no lo puedo postear porque apenas lo estoy desarrollando, no lo he probado pero el mismo es un cronometro que al recibir un pulso por el RB0 arranque a contar y si recibe nuevamente un pulso se detenga manteniendo el tiempo en los display.

Gracias por tu ayuda, en cuanto tenga algo con el asm lo subo, de eso no te queden dudas.

Saludos

Nelson


Bien, ahora me quedó mas claro.  Entonces fijate lo siguiente.
Si pones una variable por ejemplo MIVARIABLE en 0 cuando inicia el programa y viene la interrupcion, luego en dicha rutina verificas el valor de MIVARIABLE.

Cuando ya no quieras hacer lo que venias haciendo, pon a MIVARIABLE en 1.  Ahora MIVARIABLE vale 1.  Entonces al ingresar en la rutina haras lo correspondiente a MIVARIABLE=1

Entonces para MIVARIABLE = 0 --> haces el contador
               para MIVARIABLE = 1 --> haces la otra cosa
               para MIVARIABLE = 2 --> haces otra cosa #2

y así sucesivamente.

Esto en la jerga se llama "state machine" lo que en español vendría a ser como una generar estados que permitan optar por una opción u otra.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado rnelson

  • PIC12
  • **
  • Mensajes: 53
RE: Consulta con la interrupcion INT?
« Respuesta #4 en: 11 de Marzo de 2006, 13:23:00 »
Gracias mauricio casualmente asi lo hice, ya estoy terminando el asm  hoy lo posteo para que le des el vsito bueno.

Saludos.

Nelson.

Desconectado rnelson

  • PIC12
  • **
  • Mensajes: 53
RE: Consulta con la interrupcion INT?
« Respuesta #5 en: 11 de Marzo de 2006, 13:33:00 »
Codigo:
list p=16F628A
#INCLUDE <P16F628A.INC>

indo    equ     00h            
pc      equ     02h            
status  equ     03h            
fsr     equ     04h          
ptoa    equ     05h            
ptob    equ     06h            
rota    equ     0fh            
trisa   equ     85h            
trisb   equ     86h            
dig1    equ     10h            
dig2    equ     11h            
dig3    equ     12h            
dig4    equ     13h            
loops   equ     1dh            
loops2  equ     1eh
pulso   equ   1fh
z       equ     02h            
ram     equ     05h            
c       equ     00h            
w       equ     00h  

   org      00h      
                      
   goto     Inicio
   org      04h      

      btfss    intcon,1        
        goto     sale      
   incf   pulso
   btfsc   portb,0      
       goto    $-1
       bcf   intcon,1
   retfie   

   org   10h
inicio  bsf     status, ram    
        movlw   b"00010000"    
        movwf   trisa          
        movlw   00h            
        movwf   trisb          
        bcf     status, ram    
        clrf    dig1            
        clrf    dig2
        clrf    dig3
        clrf    dig4
   clrf   pulso
        movlw   00              
        movwf   ptoa            
            
   movf   pulso,w
   addwf   pcl,f
   goto   inicio         
   goto   empe
   goto   ciclo

empe      call    subir          
        movlw   08h            
        movwf   rota            
        movlw   dig1            
        movwf   fsr            
disp    movlw   00h            
        movwf   ptob            
        movf    rota, w        
        movwf   ptoa            
        movf    indo, w        
        call    tabla          
        movwf   ptob            
        movlw   03h            
        call    retardo
        btfsc   rota, 0        
        goto    empe          
        bcf     status, c      
        rrf     rota            
        incf    fsr            
        goto    disp

retardo                        
        movwf   loops          
top2    movlw   d"110"          
        movwf   loops2
top     nop
        nop
        nop
        nop
        nop
        nop
        decfsz  loops2          
        goto    top
        decfsz  loops          
        goto    top2
        retlw   0
s1000                          
        clrf    dig2            
        incf    dig1              
        movf    dig1, w        
        xorlw   0ah            
        btfsc   status, z      
        clrf    dig1            
        return
s100                            
        clrf    dig3            
        incf    dig2            
        movf    dig2, w        
        xorlw   0ah            
        btfsc   status, z      
        call    s1000            
        return

s10                            
        clrf    dig4            
        incf    dig3          
        movf    dig3, w        
        xorlw   0ah            
        btfsc   status, z      
        call    s100            
        return

subir                          
        incf    dig4            
        movf    dig4, w        
        xorlw   0ah            
        btfsc   status, z      
        call    s10            
        movlw   d"250"        
        call    retardo
        return

tabla                          
        addwf   pc          
        retlw   b"00111111"    
        retlw   b"00011000"    
        retlw   b"01110110"    
        retlw   b"01111100"    
        retlw   b"01011001"    
        retlw   b"01101101"    
        retlw   b"01101111"    
        retlw   b"00111000"    
        retlw   b"01111111"    
        retlw   b"01111101"    

ciclo   nop
   nop
   nop
   nop
   goto   ciclo
   
   end

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Consulta con la interrupcion INT?
« Respuesta #6 en: 11 de Marzo de 2006, 17:40:00 »
Escrito originalmente por rnelson
Gracias mauricio casualmente asi lo hice, ya estoy terminando el asm  hoy lo posteo para que le des el vsito bueno.

Saludos.

Nelson.



Estoy con poco tiempo pero si te funciona.... que mas da Giño

Cuando hagas software mas complicados poco a poco te irás dando cuenta. veras tus anteriores software y diras... ¿esto hacia yo? jaja.  Pero no te aflijas, le pasa a todos, y es un buen indicio porque uno va "mejorando" !

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)