Запитання з тегом «interrupt»

3
Чи може бути викликана функція автоматично, коли вхід змінюється?
Наразі мій ескіз перевіряє вхідний штифт щоразу навколо головної петлі. Якщо він виявить зміну, він викликає власну функцію, щоб відповісти на неї. Ось код (зведений до основного): int pinValue = LOW; void pinChanged() { //... } void setup() { pinMode(2, INPUT); } void loop() { // Read current input int …
21 pins  interrupt  isr 

2
Скільки шпильок для переривання може працювати Uno?
Я дивлюся на використання 7-канального RC-приймача з Arduino Uno R3. У документації згадується максимум 2 шпильки для переривання, тоді як у деяких інших блогах я бачив згадки про використання до 20 штифтів як переривання, з бібліотекою PinChangeInt. Отже, скільки перерв може ардуїно впоратися споконвічно? І чим це відрізняється від того, …

2
Наскільки точно я можу отримати Arduino за допомогою обертових кодерів?
Крокові двигуни часто дорогі для великого мотора. Однак за допомогою потужного, стандартного двигуна постійного струму та обертового кодера ви можете «імітувати» кроковий двигун. Наскільки точними є обертові кодери з Arduino просто з базовим циклом і не так багато іншого коду? Це буде "пропускати пульс" і не записувати достатньо обертання часто? …

3
Використання millis () та micros () всередині програми переривання
Документація для attachInterrupt(): ... millis()покладається на переривання для перерахунку, тому він ніколи не збільшуватиметься в межах ISR. Оскільки delay()для роботи потрібні переривання, вона не працюватиме, якщо викликати всередині ISR. micros()працює спочатку, але почне поводитися нестабільно через 1-2 мс. ... Чим micros()відрізняється від millis()(крім, звичайно, їх точності)? Чи означає вищезазначене попередження, …

2
Чи є атрибутні функції вказівника в Arduino?
Наступні фрагменти з вихідного коду бібліотеки TimerOne : // TimerOne.h: void (*isrCallback)(); // TimerOne.cpp: ISR(TIMER1_OVF_vect) // interrupt service routine that wraps a user defined function supplied by attachInterrupt { Timer1.isrCallback(); } // TimerOne.cpp: void TimerOne::attachInterrupt(void (*isr)(), long microseconds) { if(microseconds > 0) setPeriod(microseconds); isrCallback = isr; // register the user's …

1
Як працюють переривання на платах Arduino Uno та подібних?
Поясніть, будь ласка, як працюють переривання на Arduino Uno та пов'язаних платах за допомогою процесора ATmega328P. Дошки, такі як: Уно Міні Нано Pro Mini Лілії Зокрема, будь ласка, обговоріть: Для чого використовувати переривання Як написати звичайну службу переривання (ISR) Проблеми з термінами Критичні розділи Атомний доступ до даних Примітка. Це …

1
Підрахунок імпульсів з перериванням
Я намагався рахувати імпульси від квадратної хвилі 12 500 Гц, щоб викликати вихід. Ось код у мене поки що. Коли ардуїно скидається, він надруковує 315 в серіалі протягом 25 мс-зразка. 315 x 40 = 12600. Мені здається, він працює чудово. Моя єдина проблема полягає в тому, що це число повертається …
10 interrupt 

1
Чи потрібна мінливість при доступі до змінної з> 1 ISR, але не поділяється за межами ISR?
Це чітко задокументовані , що , коли глобальні дані спільно з ISR і основною програмою, то дані повинні бути оголошені volatileдля того , щоб видимість гарантії пам'яті (і , що досить тільки для даних 1 байт, потрібно будь або велике спеціальні заходи , щоб гарантувати також атомарность) . Тут ми …
9 interrupt  timers  isr 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.