Прерывание (Interrupt) - это Удобно!Всем

Arduino ( Freeduino )
Прерывание (Interrupt) - это Удобно!
Всем привет!

Расскажу о прерываниях Ардуино!

Прерывания в это просто!

Прерывание — это сообщение Ардуине, что нужно выполнить вашу подпрограмму!

Для этого используются 2е функции

Вкл. обработку прерываний attachInterrupt(interrupt, function, mode)
Выкл. прерывание detachInterrupt(interrupt)

Начнем с обработки прерывания:
attachInterrupt(interrupt, function, mode) — Функция указывает какую функцию вызывать при Прерывании.

Параметры:
interrupt — Arduino имеют два внешних прерывания с номерами 0 и 1, находятся они на 2 и 3 цифровом входе (digital pin) соответственно. Этот параметр отвечает именно за выбор какой из пинов выбрать для прерывания.

function — указываем функцию которая будет вызываться про прерывании. Функция должна быть без параметров и не возвращать ни каких данных.

mode — Определяет 4 вида прерывания:
LOW вызов, когда на порту низкий уровень напряжения
CHANGE вызывается при изменении значения на входе
RISING вызов при изменении уровня напряжения с низкого (LOW) на высокое(HIGH)
FALLING вызов при изменении уровня напряжения с высокого (HIGH) на низкое (LOW)


/* Запускаем серво-машинку по прерыванию */

int ServoPin = 3; //управляющий выход для сервы
int in_4 = 4; // вход для первой кнопки
int in_5 = 5;  // вход для второй кнопки
int step = 100; //среднее положение сервы

volatile int state = LOW;

void setup()
{
 pinMode(ServoPin, OUTPUT); 

 pinMode(in_4, INPUT); 
 pinMode(in_5, INPUT); 

 attachInterrupt(0, gostep, CHANGE); // привязываем 0-е прерывание к функции gostep
}

void loop()
{
}

void gostep()
{

 if(step > 700){step = 700;} 
 if(step < 600){step = 600;} 

 digitalWrite(ServoPin, HIGH);

 delayMicroseconds(step);

 digitalWrite(ServoPin, LOW);

 delayMicroseconds(20000-step);

 step -= 10;

 state = !state; // меняем значение на противоположное
}


http://arduino.cc/en/Reference/AttachInterrupt
admin 02.08.2009 в 01.36 комментарии 0 0

комментарии(0)

Комментировать

Для добавления комментария авторизируйтесь.
Последние комментарии:
© 2012 pobot.ru