Autor Tema: Gestionar interrupciones en ARDUINO DUE  (Leído 5329 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Prototipe88

  • PIC12
  • **
  • Mensajes: 92
Gestionar interrupciones en ARDUINO DUE
« en: 14 de Marzo de 2014, 15:21:53 »
Hola a todos. Quisiera saber si es posible adaptar a mis necesidad y gestionar las interrupciones del micro AT91SAM3X8E incorporado en la placa ARDUINO DUE. Estoy leyendo el manual de programacion del lenguaje Arduino pero éste es un poco simple y no contempla la posibilidad de "Habilitar o deshabilitar interrupciones" o "Gestionar rutinas de interrupción".

He visto algunos ejemplos en que lo hacen pero en otro lenguaje que no es Arduino... algo parecido a C para micros atmel y lo programan en el mismo entorno de arduino. Si alguien sabe referencias, tutoriales o ejemplos al respecto se lo agradecería porque ando muy perdido en éste tema.

Desconectado Prototipe88

  • PIC12
  • **
  • Mensajes: 92
Re: Gestionar interrupciones en ARDUINO DUE
« Respuesta #1 en: 15 de Marzo de 2014, 11:03:04 »
Necesito un poco de ayuda please  :(

Desconectado Robocardo

  • PIC10
  • *
  • Mensajes: 45
Re: Gestionar interrupciones en ARDUINO DUE
« Respuesta #2 en: 18 de Mayo de 2014, 01:52:16 »
Porque no consideras programar en ATMEL STUDIO 6.2. Ahi tenés toda la flexibilidad posible.
Amplio esta respuesta
El DUE tiene capacidades de interrupción muy potentes que permiten atachar una funcion de interrupción a cualquier pin. Lo podes hace con esta funcion attachInterrupt()

Sintaxis

attachInterrupt(interrupt, ISR, mode)
attachInterrupt(pin, ISR, mode)    (Arduino Due solamente)

Parametros
interrupt:    Numero de la interrupción (int)
pin:            Número del pin (Arduino Due solamente)
ISR:     La ISR que llama cuando la interrupción ocurre, esta función no tiene parámetros y retorna nada. Esta función muchas veces es conocida como rutina de servicio de interrupción.

MODO:    

Defines when the interrupt should be triggered. Four contstants are predefined as valid values:

    LOW to trigger the interrupt whenever the pin is low,
    CHANGE to trigger the interrupt whenever the pin changes value
    RISING to trigger when the pin goes from low to high,
    FALLING for when the pin goes from high to low.

The Due board allows also:

    HIGH to trigger the interrupt whenever the pin is high.

Un ejemplo
Example

int pin = 13;
volatile int state = LOW;

void setup()
{
  pinMode(pin, OUTPUT);
  attachInterrupt(0, blink, CHANGE);
}

void loop()
{
  digitalWrite(pin, state);
}

void blink()
{
  state = !state;
}
« Última modificación: 20 de Mayo de 2014, 11:49:12 por Robocardo »


 

anything