Pregunta: | 53541 - INTERRUPCIONES CON 16F84 |
Autor: | Rubén MiereS |
Saludos, estoy aprendiendo a usar el microcontrolador 16f84, y estoy aciendo un programita pero el caso es q no m detecta las interrupciones externas, tengo conectado un pulsador a la patilla6 (RBO/INT), os pego aki la función principal a ver del programa q es donde tenia que detectarme esta interrupción para saltar a una subrutina, si se os ocurre algo comentarmelo por favor,
Gracias LIST p=16f84 RADIX HEX PUL EQU 0C #include\"p16f84a.inc\" ORG 0 goto inicio ORG 6 inicio bsf INTCON,GIE ;Permite interrupciones,GIE=1. bsf INTCON,RBIE ;Permite interrupciones de PORTB, RBIE=1. bsf INTCON,INTE ;Permite interrupciones externas, INTE=1. bcf STATUS,RP0 ;Cambio a banco 0, pone RP0 a 0 movlw b\'00000000\' movwf PORTA bsf STATUS,RP0 ;Cambio a banco 1, pone RP0 a 1 movlw b\'11110001\' ;Pone las 4 líneas de mayor peso y la de menor peso de PORTB como entrada. movwf TRISB ;Mueve el contenido de W al TRISB. movlw b\'00000000\' ;Pone las 4 líneas de menor peso de PORTA como salida. movwf TRISA ;Mueve el contenido de W al TRISA. bcf STATUS,RP0 ;Cambio a banco 0, pone RP0 a 0 bcf INTCON,INTF ;Borra el flag de interrupción externa. s1 btfss INTCON,INTF ;Se salta la siguiente instrucción si INTF=1. goto s1 nop bcf INTCON,INTF ;Borra el flag de interrupción externa. s2 btfss INTCON,RBIE ;Se salta la siguiente instrucción si RBIE=1. goto s2 call pulsadores goto s1 |
Respuesta: | nadie nadie |
Suponiendo que esten bien habilitadas todas las opciones para que funcione la interrupcion, al producirse esta, el programa salta a l vector de interrupcion, en la direccion 4, que no se ve este en el programa...
Has de introducir las lineas: ORG 4 goto mi_interrrupcion Y desarrollar lo que hace tu interrupcion, como haces con inicio |