Activar y desactivar el cambio de pin interrumpe ATtiny85

0

Sé que las interrupciones de cambio de pin pueden activarse para el ATtiny85 al habilitar las PCI utilizando el registro GIMSK, y luego configurar para que patillas se activen mediante el registro PCMSK, y finalmente llamar a sei () para habilitarlas. El siguiente código logra esto:

GIMSK = 0b00100000;
PCMSK = 0b00011111;
sei();

Estoy un poco inseguro de cómo debo apagarlos. Es cli () todo lo que es necesario, o necesito restablecer los registros como lo hice en el siguiente fragmento de código:

GIMSK = 0b00000000;
PCMSK = 0b00000000;
cli();

Cualquier apreciación sería apreciada. Estoy usando la plataforma Arduino.

    
pregunta Alex Wulff

1 respuesta

1

En primer lugar, sei() y cli() habilitan / inhabilitan todas las interrupciones, no solo las de cambio de pin. A menos que no desee ninguna interrupción, no debería usar cli() cuando intente desactivar las interrupciones de cambio de pin.

Borrar el bit PCIE en GIMSK es suficiente para desactivar las interrupciones de cambio de pin. Ni siquiera necesita borrar el registro PCMSK .

Extracto obligatorio de hoja de datos ( página 51):

  

Cuando se establece el bit PCIE (uno) y se establece el bit I en el registro de estado (SREG) (uno), se habilita la interrupción de cambio de pin. Cualquier cambio en cualquier pin PCINT [5: 0] habilitado causará una interrupción. La correspondiente interrupción de Pin.   La solicitud de cambio de interrupción se ejecuta desde el vector de interrupción de PCI. Los pines PCINT [5: 0] están habilitados individualmente por el Registro PCMSK0.

Las interrupciones de cambio de pin solo se habilitan cuando se establece el bit PCIE en GIMSK (uno). De lo contrario, están deshabilitados.

El indicador de interrupción global en SREG también debe configurarse para que se produzcan interrupciones ( sei() ), sin embargo, si ya está utilizando interrupciones en su diseño, es probable que este bit ya esté establecido.

    
respondido por el Tom Carpenter

Lea otras preguntas en las etiquetas