Функции прерывания ЧТо ЭТО, откуда берутся.

Сергей Данилов
Offline
Зарегистрирован: 19.09.2019

Изучаю прерывания ,в функции attachInterrupt
В ней я так понял есть три параметра номер прерывания,функция прерывания и режим прерывания.Вот проблема,не могу понять откуда берутся эти функции.Например функция count_pulse считает импульсы для обработчика прерываний эту функцию откуда-то взяли где-то они задекларированы?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Возможно придумали так чтобы при срабатывании прерывания вызывалась какая-то функция?
Возможно это будет ваша любимая функция.
Возможно для себя её нужно и написать самому?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

В файлах ядра Arduino IDE (arduino\hardware\arduino\avr\cores\arduino\).
Например функция attachInterrupt() задекларирована в WInterrupts.c

Также это может быть пользовательская функция, которая задекларирована прямо в скетче или в заголовочном файле *.h, который подключенм к скетчу через #include.

Сергей Данилов
Offline
Зарегистрирован: 19.09.2019

То_есть это получается как бы имя константы которую я сам общываю как хочу?

sadman41
Offline
Зарегистрирован: 19.10.2016

А вы переменную от функции отличаете?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

http://arduino.ru/Reference/AttachInterrupt

 

Найдите 2 раза слово "blink"

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;
}

 

Сергей Данилов
Offline
Зарегистрирован: 19.09.2019

извините то_есть в функции attachInterrupt я могу обозвать функцию как захочу?

Сергей Данилов
Offline
Зарегистрирован: 19.09.2019

Тут функция blink не возвращает значения)Вот сама функция blink то есть ее название где задекларированы?чем мне руководствоваться при написании программы?

Сергей Данилов
Offline
Зарегистрирован: 19.09.2019

Ага то-есть задаётся функция.Могу назвать ее хоть именем своим для того что бы использовать в обработчике?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

госспадя, ты б хоть почитал чонить, перед тем как на форум лезть. А не только посмотрел мультики гайвера. 

kalapanga
Offline
Зарегистрирован: 23.10.2016

Сергей Данилов пишет:
извините то_есть в функции attachInterrupt я могу обозвать функцию как захочу?

Да. Правильнее наверное сказать, что Вы свою функцию можете называть как хотите (в пределах правил языка конечно). А в функцию attachInterrupt в качестве параметра передаёте имя Вашей функции. И то, что она значения не возвращает - это правильно.

Сергей Данилов
Offline
Зарегистрирован: 19.09.2019

// обработка прерывания - получить кол-во импульсов
//
void count_pulse()
{
detachInterrupt(0);
money++;
if(money==1)
timeCount=millis();
attachInterrupt(0,count_pulse,FALLING);
}

Код данного скетча находится в п

Сергей Данилов
Offline
Зарегистрирован: 19.09.2019

После отключения прерывания происходят какие-то операции для чего они?

b707
Offline
Зарегистрирован: 26.05.2017

Сергей Данилов пишет:
После отключения прерывания происходят какие-то операции для чего они?

Сергей Данилов, вы издеваетесь? Может все-таки книжку почитаете, прежде чем такие вопросы задавать?

Сергей Данилов
Offline
Зарегистрирован: 19.09.2019

Хотел как проще)

b707
Offline
Зарегистрирован: 26.05.2017

Сергей Данилов пишет:
Хотел как проще)

Если "проще" - это задавать идиотские вопросы вместо чтения учебников - то это закончится для вас позорным вылетом с форума

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Сергей Данилов пишет:
Хотел как проще)

Ну-ну.  

sadman41
Offline
Зарегистрирован: 19.10.2016

Купюроприёмник, поди, подключает. Если это так, то таких же вопросов будет множество...

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Давайте все же в песочнице не сильно гнобидь, а то и того малый интерес отобьём. 

Ты это читал (на русском и без фанатизма всякого и извращений?) - http://arduino.ru/Reference/AttachInterrupt

Если внимательно прочёл раз 5-7, сходил попить чайку, ещё пару раз, приспичило поссать- поссал, ещё пару раз прочёл и вот уже хочешь писать вопрос - ещё раз прочёл?! Если нет, попробуй. Я на полном серьезе говорю и нисколько не стебу. Сначала ты читаешь как книжку а-ля детектив, потом вдумываться начинаешь, потом ищешь непонятное и так далее. В итоге - когда пишешь вопрос или вопрос сам собой пропадёт (потому что ты захочешь его сформулировать максимально понятно и верно для себя в первую очередь) или напишешь вопрос, но в нем уже будет 90% ответа. Тебя или  стебом/шуткой к ответу пнут или чутка затянуто))