т.к. я начинающий программист, у меня возникла проблемка с внешними прерываниями,
облазил гугл, нашёл как работать примеру с INT1 [url]http://samou4ka.net/page/vneshnie-preryvanija-mk-avr[/url]
Код:
Код: Выделить всё
#include <iom8.h>
#include <avr/io.h>
#include <avr/interrupt.h>
//определяем биты регистров
#define ISC10 2
#define ISC11 3
#define INT1 7
unsigned char int1 = 0;
ISR(INT1_vect)
{
//обработка прерывания
int1++;
}
//функция инициализация внешнего прерывания
void INTinit()
{
MCUCR = (1<<ISC10) | (1<<ISC11);//0b00001100
GICR = (1<<INT1);//0b10000000
}
int main()
{
INTinit();//вызываем функцию инициализации прерывания
sei();//устанавливаем бит глобального разрешения прерываний
while(1);
}
Сразу в нужных местах поменять нули на единички или для каждого INTx писать свою функцию инициализации ?
Вообще если у кого есть код как сразу инициализировать INT0, INT1 и INT2 - буду признателен тому человеку.
Тут много опытных программеров, народ, помогите если не затруднит... Вроде бы изучение контроллеров пошло хорошо, а на этом месте запнулся.



