Прекъсване на AVR контролер в Atmel AVR Studio, blablacode
Първото нещо, за това, което такова прекъсване.
Прекъсване (прекъсване) - е един вид функция, за да бъде изпълнена, когато сигналът за който контрольора.
Когато работите в AVR Studio са създадени с помощта на прекъсване ISR () макро. СИГНАЛ () и INTERRUPT (). Те отбелязаха функция като прекъсне треньор. Разликата между тях е, че прекъсва () и манипулатор функцията ISR () се определя за случая, когато общото разрешено прекъсване (процесора може да бъде прекъснато) и сигнал () за случая, когато общият прекъсването е забранено.
На тази над с и преминете към теорията на практика (въпреки че още ще бъде по-ниска от теорията).
Подобна схема ще се съберат в ISIS:
Както може би се досещате, че ще пиша за прекъсване (което се генерира от бутона), която ще се запали и да гасят диод.
Така че, отворен студио и да се създаде стандарт проект.
За да използвате прекъсва включват заглавния файл:
Съгласни сме, че прекратяването на (физически), няма да включват силата върху педала (както се прави погледнах), но само при смяна на знамето. При определени стойности, които ще се включва и изключва диод.
Нека да зададете този флаг в световен мащаб:
Сега декларира прекъсване:
Както можете да видите в макро скобите се наричат прекъсне вектор. Този вектор показва, ще бъде генериран компилатора за всеки вход прекъсване. За INT1 - това SIG_INTERRUPT1. За ADCs (ADC) например е - SIG_ADC. (Пълен списък на перфектно описано в книгата "Юрий Shpak програмиране в C език за AVR и PIC микроконтролери.")
Сега към основната функция на нашата "програма".
Ние трябва да решим целия прекъсване INT1 и по-специално:
Мисля, че как да го преведе, и така ще разбереш.
Установяване на състоянието на прекъсване поколение на всеки "логична промяна на INT1".
Сега поставете цялото пристанище C като изход:
Е, това вече трябва да е ясно:
За да се изчака не е необходимо. Още повече, че тя намалява производителността. Но бих искал да.
Програмата е изцяло:
Ние събира и събира шестнадесетичен верига в Протей. Насладете се на прекъсване на работа при смяна на позицията на бутона.