Autor Tema: Problemas con simulación  (Leído 1903 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Arim

  • PIC10
  • *
  • Mensajes: 2
Problemas con simulación
« en: 24 de Abril de 2007, 20:30:36 »
Hola!
Quería saber si podrían ayudarme con mi problema. Una vez que terminé mi programa, y probé de simularlo unas cuantas veces, justo antes de grabarlo, el Mplab no me dejó abrir la ventana Watch Windows para ver cómo se modifican algunos registros de propósito general con los que cuenta mi programa. Al final, luego de grabarlo, no funcionó como se esperaba.
También quería preguntarles si al simular una interrupción, el Mplab permite hacer esto cuantas veces uno quiera. A mí me deja hacerlo sólo una vez, ¿será por algún error en la programación?
Desde ya, les agradezco.
Saludos
Arim

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Problemas con simulación
« Respuesta #1 en: 24 de Abril de 2007, 20:43:55 »
Hola!
Quería saber si podrían ayudarme con mi problema. Una vez que terminé mi programa, y probé de simularlo unas cuantas veces, justo antes de grabarlo, el Mplab no me dejó abrir la ventana Watch Windows para ver cómo se modifican algunos registros de propósito general con los que cuenta mi programa. Al final, luego de grabarlo, no funcionó como se esperaba.
Bueno, es muy raro que no te funcione, tal vez tengas algún problema en tu pc o no configuraste bien algo.

También quería preguntarles si al simular una interrupción, el Mplab permite hacer esto cuantas veces uno quiera. A mí me deja hacerlo sólo una vez, ¿será por algún error en la programación?

Es muy probable, si de alguna forma no 'reseteas' el evento o flag que produjo la interrupción, es probable que no se vuelva a activar.

Si tu código está bien, el MPSIM simula bastante bien a un pic.

Podrías subir algo del código para verificar mejor.
- 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 Arim

  • PIC10
  • *
  • Mensajes: 2
Re: Problemas con simulación
« Respuesta #2 en: 10 de Mayo de 2007, 12:32:16 »
Acá les mando el código por si encuentran dónde puede estar el error. Creo que el flag queda reseteado (BCF INTF, antes de salir de la interrupción), pero tal vez me equivoque.  :-)
Desde ya, muchas gracias.
Arim
__________________________________________________________
   LIST      P=16F84
   RADIX      HEX
#INCLUDE P16F84.INC
   
;ASIGNACIONES
   
CONT   EQU   0x0C
A   EQU   0x0D
PDel0   EQU   0x0E
PDel1   EQU   0x0F      


   ORG   00H
   GOTO    INICIO

;INTERRUPCIÓN
   ORG   04H
   
   BCF   INTCON,GIE   
                BCF          INTCON,INTE   

   CALL   SOUND

   BCF    INTCON,INTF
                RETFIE         


;PROGRAMA PRINCIPAL

INICIO   
   BSF   STATUS,RP0   
   CLRF   TRISA      
   MOVLW   B'00111111'   
   MOVWF   TRISB      
    BCF   STATUS,RP0   

   BSF   INTCON,GIE   
                BSF          INTCON,INTE         

   CLRF   PORTA
   CLRF   CONT   
   CLRF   A      

TEST   MOVLW   d'9'      
   SUBWF   A,0
   BTFSC   STATUS,Z   
   GOTO   SALIDA

   BTFSC   PORTB,3      
   INCF   CONT      
   CALL   RET      
   INCF   A      
   GOTO   TEST

SALIDA   MOVFW   CONT      
   MOVWF   PORTA      
   CLRF   CONT      
   CLRF   A      
   GOTO    TEST


;RETARDO
RET       movlw    .110      ; 1 set numero de repeticion  (B)
            movwf    PDel0     ; 1 |
PLoop1  movlw   .181      ; 1 set numero de repeticion  (A)
            movwf     PDel1     ; 1 |
PLoop2  clrwdt            ; 1 clear watchdog
            clrwdt            ; 1 ciclo delay
            decfsz   PDel1,1   ; 1 + (1) es el tiempo 0  ? (A)
            goto     PLoop2    ; 2 no, loop
            decfsz   PDel0,1   ; 1 + (1) es el tiempo 0  ? (B)
            goto     PLoop1    ; 2 no, loop
PDelL1  goto   PDelL2    ; 2 ciclos delay
PDelL2  goto   PDelL3    ; 2 ciclos delay
PDelL3  clrwdt            ; 1 ciclo delay
            return            ; 2+2 Fin.

SOUND      
   BSF   PORTB,7
   BSF   PORTB,6
   CALL   RET
   CALL    RET
   CALL    RET
   BCF   PORTB,7
   BCF   PORTB,6
   CALL   RET
   CALL   RET
   BSF   PORTB,7
   BSF   PORTB,6
   CALL   RET
   CALL    RET
   CALL    RET
   BCF   PORTB,7
   BCF   PORTB,6
   RETURN      

   END
__________________________________________________________

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Problemas con simulación
« Respuesta #3 en: 10 de Mayo de 2007, 12:46:28 »
He visto esto que no me gusta


;INTERRUPCIÓN
   ORG   04H
   
   BCF   INTCON,GIE   
   BCF   INTCON,INTE   

   CALL  SOUND

   BCF   INTCON,INTF
   RETFIE     


Porqué apagas el GIE? porqué apagas el INTE?
. El GIE se apaga solo , lo apaga el PIC al ocurrir una interrupción
. El INTE si lo deshabilitas, precisamente no volverá a ocurrir la interrupción

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)


 

anything