Links Tips
|
TIPS P: Como funcionan las interrupciones? R: En los microcontroladores PIC16F8X hay cuatro posibles fuentes de interrupciones:
Normalmente el flanco
ascendente produce la interrupcion, esto puede ser
cambiado a flanco descendente en el bit 6 del registro
OPTION_REG (0=descendente;1=ascendente). bit 7: GIE. Habilitacion general de
interrupciones(0=desabilitado;1=habilitado) Para habilitar las interrupciones ponemos
en 1 el bit 7. Luego tenemos que habilitar la fuente de
nuestra interrupcion, por ejemplo para la pata RB0/INT
ponemos en 1 el bit 4. Por supuesto tenemos que setear el
PORTB, tal que RB0/INT sea input, mediante un TRISB. El
codigo de la interrupcion se coloca en la direccion
0004h. Cuando esta ocurre el bit correspondiente, segun
quien interrumpe, se setea en el registro INTCON y pasa a
ejecutarse la direccion 0004h. El bit 7 se pone en cero
desabilitando asi las interrupciones. Para retornar se
utiliza la instrucion RETIF. Antes de terminar debemos
poner en cero el bit de flag del registro INTCON
correspondiente a la interrupcion que se ejecuto evitando
asi que entre en loop infinito. El bit 7 se pone en 1
automaticamente despues del RETIF. En la pagina de codigos hay un ejemplo de uso de
interrupciones. P: Como simulo un HI o un LOW digitales en los pines del PIC en el MPLAB? R: Ir al menu "Debug" submenu "Simulator Stimulus" elegir "Asynchronous Stimulus". Aqui aparece una ventana con 12 botones. A cada uno de estos le podemos asignar un pin del micro. Para esto ponemos el puntero del mouse sobre el boton y hacemos click con el derecho. Se despliega un menu.Elegimos la primera opcion "Assign Pin". Se despliega una lista con los nombres de los pines. Para selecionar uno hacemos doble click. Para indicar que cada vez que apretemos este boton el estado logico de ese pin debe cambiar de LOW a HI o de HI a LOW hacemos click con el derecho sabre el boton y seleccionamos "Toggle". P: Porque cuando compilo el codigo me dice: "Message[302] C:\PROGRA~1\MPLAB\PROYECTS\CASI.ASM 33 : Register in operand not in bank 0. Ensure that bank bits are correct.?" R:Bueno este mensaje es solo recordatorio y aparece cada vez que modificamos los registros que "setean" los puertos(TRISA, TRISB, etc.). Estos registros se encuentran en el "Bank 1" y a menos que lo indiquemos el micro trabaja con el "Bank 0". Para pasar al "Bank 1" ponemos en 1 al bit RP0 del STATUS. A continuacion un ejemplo de como setear el PORTB para que funcione como 4 entradas y 4 salidas. bsf STATUS,RP0
;seteo el bit para ir a "BANK 1"
R: Si miramos en el ejemplo de abajo
:100000008601850183167E308600003085008312CC |
[Links] [Tips] [Programadores] [Códigos] [Herramientas] [Página principal] [FAQ] [Proyecto]
Mi e-mail es acdc@pinos.com cualquier duda o aporte será atendido.
Volver a la página principal.
[Skip Prev][Prev][Next][Skip Next]
[Random][Next 5][List Sites][Join Ring]
Build Your Free Home
PageVisit other great pages on:TravelTravel