Съдържание:
- Стъпка 1: Прекъсване на манипулатора
- Стъпка 2: Задайте периодичен интервал от време
- Стъпка 3: Прекъсване на инициализацията
- Стъпка 4: Къде да добавите кода си
Видео: Arduino - Периодично прекъсване: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Този Instructable е за използване на периодично прекъсване за време в програмите на Arduino. Това е стъпка за начинаещ Arduino програмист, който знае, че Arduino може да направи повече, но не знае как да го направи.
Ако има проблем с производителността, предполагам, че използвате една или повече функции delay (). Номерът е да се отървете от функцията (ите) delay () и да замените прекъсване. Функцията delay () принуждава Arduino да не прави нищо, докато чака изчакването на delay () да завърши. Използването на прекъсване позволява на вашата програма да прави други неща, докато чака края на забавянето. Обикновено има огромно количество неизползвано мъртво време, което може да се използва за други неща при използване на delay (). Използването на прекъсване решава този проблем.
Стъпка 1: Прекъсване на манипулатора
1. Добавете манипулатора на прекъсвания към вашата програма. Просто копирайте и поставете някъде над setup ();
const unsigned long TIMER0_COUNT = 500; // Интервал на таймера от 500 msec
// TIMER0 манипулатор на прекъсване променливо време за бул = false; ISR (TIMER0_COMPA_vect) {статично без подписа дълго броене = 0; if (++ count> TIMER0_COUNT) {count = 0; време = вярно; // времето е настроено на true на всеки TIMER0_COUNT ms} // (времето трябва да бъде изчистено в основната рутина)}
Стъпка 2: Задайте периодичен интервал от време
2. Задайте времевия интервал. Тази рутина се връща към прекъсването TIMER0, което е настроено да се задейства на всеки ~ 1 msec.
Вашият "интервал" е броят на TIMER0 прекъсванията за обработка. Всеки интервал е ~ 1 msec, така че наистина задавате колко прекъсвания TIMER0 да броят, преди да активирате вашия интервал. IOW, задайте променливата TIMER0_COUNT на колкото милисекунди искате да изчакате. Например, използвайте 500 за половин секунда. Използвайте 3000 за 3 секунди.
Стъпка 3: Прекъсване на инициализацията
3. Добавете кода "TIMER0 Initiation" към вашия метод setup (). Отново просто копирайте и поставете в setup ().
// *** TIMER0 инициализация ***
cli (); // изключваме всички прекъсвания TIMSK0 = 0; // изключваме timer0 за по -ниско трептене OCR0A = 0xBB; // произволен брой прекъсвания TIMSK0 | = _BV (OCIE0A); // прасенце обратно на прекъсване sei (); // отново включване на прекъсванията
Стъпка 4: Къде да добавите кода си
4. Добавете кода "проверка на времето" към метода си loop (). Копирайте и поставете в цикъл ().
if (време) {
време = невярно; // направете нещо тук}
"Времето = невярно;" линията е важна. Без този ред редът (ите) „направи нещо тук“ще се изпълнява всеки път, когато програмата изпълнява loop ().
Разбира се, вие замествате собствените си дейности в реда „направете нещо тук“. Започнете с отпечатване на текст или мигане на светодиода.
Готови сте!
Препоръчано:
Прекъсване на променливотоковото захранване, LED пътеподдържаща батерия светлина: 8 стъпки
Прекъсване на захранването с променлив ток, LED пътеводна светлина, поддържана от батерията: По време на скорошно прекъсване на захранването, в най -тъмните дълбини на мазето ми … една светлина наистина би била много удобна. За съжаление фенерчето ми беше на няколко тъмни стаи. Порових се малко, намерих светлината и се отправих към семейната стая. Моят wi
555 Таймер за излъчване на сигнал за прекъсване Atmega328: 7 стъпки
555 Таймер за излъчване на сигнал за прекъсване Atmega328: Основната цел на тази верига е да пести енергия. Така че, няма да говоря за arduino, защото самата платка има ненужни режийни разходи за краен продукт. Той е чудесен за развитие. Но не е много добро за окончателните проекти, изпълнявани на batt
Калъф за прекъсване на захранването ATX: 3 стъпки
ATX захранващ разкъсващ калъф: Купих долната ATX прекъсваща платка и се нуждаех от корпус за нея. Материали ATX прекъсваща платка Старо ATX захранване Болтове и гайки (x4) 2,5 мм самонарезни винтове Шайби (x4) Клавишен превключвател Кабелни връзки Топлосвиваема тръба Припой 3D нажежаема жичка (гръб и усилвател) ; светене в
Алармена верига за прекъсване на проводника с IRFZ44N MOSFET: 11 стъпки
Алармена верига за прекъсване на проводника с IRFZ44N MOSFET: Днес по време на тази статия ние сме склонни да квадратираме измерването, за да обсъдим предимствата на алармената верига за прекъсване на проводника с IRFZ44N MOSFET. IRFZ44N е асоцииран в подслаждащия N-Channel вид подсладител MOSFET към него, ще осигури висока производителност за директно
Как да направите верига за автоматично прекъсване: 9 стъпки
Как да направим верига за автоматично прекъсване: Здравейте приятелю, Днес ще направя верига за автоматично прекъсване с помощта на 2N2222A транзистор. Тази схема е много проста. Нека започнем