No se puede hacer funcionar la interrupción de cambio de pin AVR

1

Estoy intentando que funcione una interrupción de cambio de pin en un Attiny2313 pero estoy atascado, la interrupción no se está activando.

Estoy usando el siguiente código en main() :

GIMSK |= (1 << PCIE2);
PCMSK2 |= (1 << PCINT13) | (1 << PCINT14) | (1 << PCINT15);
sei();

Esto debería producir una interrupción en los pines PD2, PD3, PD4, ¿supongo?

Tengo una pantalla adjunta que muestra los bits en PIND (que de hecho son niveles cambiantes) Y he definido un uint8_t interruptTriggered = 0; en la parte superior del archivo, que debe establecerse en 1 en:

ISR(PCINT2_vect) { interruptTriggered = 1; }

También estoy mostrando el valor de interruptTriggered en la pantalla, pero nunca cambia a 1.

Nota: como el archivo iotn2313.h incluido por AtmelStudio 6.1 no incluye todas las definiciones, tomé algunas libertades al definir lo siguiente:

//fix some missing definitions for Attiny2313
#define PCMSK2 _SFR_IO8(0x05)
#define PCMSK1 _SFR_IO8(0x04)
#define PCMSK0 _SFR_IO8(0x20)
#define PCINT11 0
#define PCINT12 1
#define PCINT13 2
#define PCINT14 3
#define PCINT15 4
#define PCINT16 5
#define PCINT17 6
#define PCINT1_vect _VECTOR(13)
#define PCINT2_vect _VECTOR(14)
#define PCIE0 5
#define PCIE1 3
#define PCIE2 4
    
pregunta Mervin

1 respuesta

1

Aparentemente hay una nueva revisión de ATtiny2313 , llamada ATtiny2313A . Este documento describe las diferencias .

  

El ATtiny2313A es un reemplazo directo funcionalmente idéntico para el   ATTEL 2313. Todos los dispositivos están sujetos al mismo proceso de calificación y al mismo conjunto.   de pruebas de producción, pero como el proceso de fabricación no es lo mismo algunos   Las características eléctricas difieren.

Entre otras cosas, hay más pines e interrupciones de entrada de Cambio de Pin como ya notó.

Asegúrese de haber seleccionado el tipo de controlador correcto en Atmel Studio, que incluye el A en 2313A , y asegúrese de que el dispositivo físico sea también una versión de A .

    
respondido por el jippie

Lea otras preguntas en las etiquetas