Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
2 / 2 / 1
Регистрация: 07.12.2013
Сообщений: 83

Прерывания

28.02.2015, 23:23. Показов 5160. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ заказал себе девайс, UNO R3 Development Board Microcontroller MEGA328P ATMEGA16U2 Compat for Arduino.
скачал прогу 1.6.0, до этого писал AVR в Algorithm Builder, думаю ну раз под железку своя студия есть значит все должно быть гораздо проще, библиотек конечно много, но вот не могу разобраться как работать с прерываниями.
К примеру:
1 - Сеть 220v, схема с оптронной развязкой ловит переходы через нуль, тут по хорошему нужно прерывание по INT входу.
2 - последовательный порт, прием в режиме терминала, нужно прерывание - либо пришел новый байт(такое прерывание есть в железке), либо пришла строка в конце которой Hx0D(программное прерывание, построенное на серии аппаратных).
нашел пример в студии:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
  SerialEvent occurs whenever a new data comes in the
 hardware serial RX.  This routine is run between each
 time loop() runs, so using delay inside loop can delay
 response.  Multiple bytes of data may be available.
 */
 
void serialEvent() {
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
    // add it to the inputString:
    inputString += inChar;
    // if the incoming character is a newline, set a flag
    // so the main loop can do something about it:
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}
но как следует из описания если я верно перевел:
SerialEvent вызывается всякий раз, когда новые данные приходит в RX. Эта процедура выполняется в каждой петле loop(), так что использование задержки внутри петли могут задержать ответ. Несколько байт данных могут быть недоступны.
опрос порта линейный, кто нить работал с прерываниями? это реально? или это чюдо для школьников написанное такими жи школьниками. Ну а как иначе? работать с процессором без прерывание это извращение...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2015, 23:23
Ответы с готовыми решениями:

Прерывания в Arduiuno
Имеется Arduino pro mini на процессоре ATMega328P. У этого процессора на ноги можно прикрутить прерывания INT0, INT1 и PCINT0...PCINT23....

NodeMcu v3 и прерывания
Добрый вечер! Раньше с NodeMcu дела не имел, только ардуины и ESP32 немного. Сейчас достался такой экземпляр: При попытке назначить...

Два прерывания
Здравствуйте! Проблема такова, есть два прерывания которые вызывают две разных функции attachInterrupt(0, blinkin, FALLING); ...

4
0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 25
01.03.2015, 09:32
Гуглем не пробовали пользоваться? http://arduino.ru/Tutorial/Arduino_Interrupts
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
01.03.2015, 14:53
Цитата Сообщение от -VIRUS- Посмотреть сообщение
или это чюдо для школьников написанное такими жи школьниками.
Соглашусь с этим.

1. А про прерывания, вот: http://arduino.cc/en/Reference/attachInterrupt
Если вкратце, то вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int pin = 13;
volatile int state = LOW;
 
void setup()
{
  pinMode(pin, OUTPUT);
  attachInterrupt(0, blink, CHANGE); //устанавливаем обработчик прерывания.
  //Прерывание вызовется
  //при изменении состояния на 2 пине.
}
 
void blink()//обработчик прерывания
{
  state = !state;
}
 
void loop()//а внутри цикла любой код
 
{
  digitalWrite(pin, state);
}
2.
Цитата Сообщение от -VIRUS- Посмотреть сообщение
либо пришел новый байт(такое прерывание есть в железке)
К сожалению, готовых библиотек нет. Вышеприведённая функция serialEvent() на самом деле вызывается не по прерыванию, а внутри цикла.

Конечно же можно покопаться глубже http://www.nongnu.org/avr-libc... rupts.html и написать собственный обработчик прерывания.
1
2 / 2 / 1
Регистрация: 07.12.2013
Сообщений: 83
01.03.2015, 20:08  [ТС]
Гуглем не пробовали пользоваться?
Пробовал, попал сюда , вопреки мирового заблуждения, гугл все таки не на все вопросы знает ответ.
Рыжий Лис, спасибо. По пробою разобраться, отпишу если чю.
0
0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 25
01.03.2015, 20:12
Ага, особенно на такие сложные.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2015, 20:12
Помогаю со студенческими работами здесь

Конфликт RCSwitch.h и библиотеки прерывания TimerOne.h
Добрый день. Я начинающий программист, студент. Появилась проблема. RCSwitch.h работает без проблем. Но когда я в программу ввел код,...

Прерывания по таймеру на Arduino Due (Atmel SAM3X8E)
Каким образом можно организовать прерывание по таймеру на Arduino due(sam3x8e)? Стандартные библиотеки не работают, т.к. написаны для...

ADXL345 сброс состояния ноги прерывания (INT1, INT2)
Доброго времени года! Пытаюсь работать с акселерометром ADXL345 и возникли проблемы с его прерываниями. Не получается сбросить состояние...

Вызов прерывания в обработке прерывания
В программе,нажатие кнопки вызывает прерывание,в котором оно обрабатывается.Попутно в обработке этого прерывания запускается таймер по...

Прерывания
Подскажите пожалуйста. Использую дискавери F4 Настроил внешние прерывания. В обработчик прерывания заходит. Но если посмотреть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru