escribiendo en un pin de interrupción externo

0

He conectado la pantalla de 7 segmentos a PORTB (RB1-RB7), RB0 es un pin de interrupción externo que está encendido

para mostrar el número 8, escribí 0b11111110, entonces, ¿qué pasará con la interrupción externa cuando escribo 0 en el bit 0?

 // IM TRYING THIS
 unit8_t sevenSegDigit[10]={
 0b11111110,  // 0
 0b10010000,  // 1
 0b11010100,  // 2
};

esto creará algún problema?

¿Alguna solución para crear una tabla de búsqueda como el código anterior sin escribir el bit / pin de interrupción? PIC16F876A

    
pregunta noob_no1

1 respuesta

0

En la mayoría de los chips, puede activar una interrupción del software. Aquí hay un extracto de la hoja de datos de ATMega328:

  

Observe que, si   habilitadas, las interrupciones se activarán incluso si los pines INT0 e INT1 o PCINT23 ... 0 están configurados como salidas. Esta   Esta función proporciona una forma de generar una interrupción de software.

Entonces, si cambia el valor del bit correspondiente a su pin de interrupción en el registro PORTx, se activará una interrupción. Por supuesto, puede establecer cuándo se activará la interrupción: al cambiar, subir o bajar.

También recomiendo leer la hoja de datos de tu chip para ver qué dice el fabricante al respecto.

Si desea evitar esta situación por completo, puede usar un registro PORTx diferente para las salidas si necesita utilizar los 8 pines en PORTB, o simplemente deje el bit de interrupción solo y no cambie sus valores.

    
respondido por el Egor Tamarin

Lea otras preguntas en las etiquetas