PIC mejorado de 16F: ¿Cuántos períodos de instrucción requiere automatic_context_save?

1

Estoy a punto de hacer mi primer diseño con un microcontrolador PIC 16F mejorado. Tengo una pregunta sobre el contexto automático guardar & restauración que se produce cuando se activa una interrupción.

Específicamente, ¿cuántos períodos de instrucción requiere un microcontrolador PIC16F mejorado, como el PIC16F1782, para realizar el guardado automático del contexto cuando se activa una interrupción?

Los PIC 16F más antiguos sin guardar automáticamente el contexto requieren 2 períodos de instrucción para saltar al vector Interrupción y 2 períodos de instrucción adicionales para regresar de Interrupción. El guardado de contexto dentro del ISR requiere un mínimo de 3 períodos de instrucción para guardar W & La restauración de estado y contexto al salir del ISR requiere un mínimo de 4 períodos de instrucción para restaurar Status & W.

La hoja de datos para un PIC 16F mejorado (PIC16F1782) dice que todos los siguientes registros se guardan automáticamente en registros ocultos cuando la Interrupción se activa y se restaura cuando se ejecuta la Interrupción de retorno: • registro W • Registro de estado (a excepción de! TO y! PD) • registro BSR • Registros FSR • Registro PCLATH

Sin embargo, la hoja de datos no indica cuánto tiempo extra (si corresponde) se consume en este contexto guardar y restaurar. Lo más cercano que puedo encontrar está en el Resumen del conjunto de instrucciones (Tabla 29-3 en la página 344 de la hoja de datos de PIC16F1782 - DS40001579E) que indica que RETFIE requiere 2 períodos de instrucción (igual que los anteriores PIC 16F).

Aprendí de la manera más difícil que a veces la hoja de datos de Microchip no siempre está completa.

    
pregunta Dwayne Reid

1 respuesta

1

La información que estaba buscando está en la hoja de datos, pero no es exactamente donde la esperaba.

La Sección 8.2 de la hoja de datos PIC16F1782 (página 75 del documento DS40001579E) dice:

  

La latencia de interrupción se define como el tiempo desde el momento en que se produce el evento de interrupción   Ocurre a que comienza la ejecución del código de tiempo en el vector de interrupción. los   La latencia para interrupciones síncronas es de tres o cuatro instrucciones.   ciclos Para interrupciones asíncronas, la latencia es de tres a cinco.   Ciclos de instrucción, dependiendo de cuándo se produce la interrupción. Ver figura   8-2 y la Figura 8.3 para más detalles.

Esta información me permite determinar el tiempo máximo que transcurrirá antes de que se ejecute mi ISR.

    
respondido por el Dwayne Reid

Lea otras preguntas en las etiquetas