Написать программу проверки состояния кнопок с использованием прерываний, страница 2

                return 0;

}

Задание 2.

Модифицировать программу обработку прерываний от кнопок таким образом, чтобы первый светодиод включался при нажатии на кнопку 1 и выключался при нажатии на кнопку 2

void InitExternalInterrupts()

{  

    IO0INTENF = 0x3EF; //Прерывание по срезу - кнопка на порту P0.5

    //Внешнее прерывание устанавливается на EINT3

    InstallIRQ( EINT3_INT, (void *)ExternalInterruptsHandler3, 0x02 );

}

__irq __nested __arm void ExternalInterruptsHandler3(void)

{

   if(IO0INTSTATF & 0x0020)

 {

    k=0x00;

  }

if(IO0INTSTATF & 0x0040)

  {

    k=0x01;

  } 

FIO2PIN = k;

  IO0INTCLR  = 0xFFFFFFFF; // Î÷èñòêà ïðåðûâàíèé îò GPIO PORT0

  VICADDRESS = 0;

}

int main (void)

{

K=0;

}

Задание 3.

Модифицировать программу обработку прерываний от кнопок таким образом, чтобы визуализировать количество срабатываний кнопок при однократном нажатии (проверка наличия эффекта дребезга контактов). Для этого необходимо добавить в программу переменную «счетчик дребезга», которую необходимо увеличивать на единицу в каждом прерывании и выводить полученное число на светодиоды в двоичном формате. Для обнуления «счетчика дребезга» необходимо использовать одну из кнопок, например первую.

__irq __nested __arm void ExternalInterruptsHandler3(void)

{

   if(IO0INTSTATF & 0x0020)

  {

    k=k+1

  }

 FIO2PIN=k;

Delay(100);

K=0;

  IO0INTCLR  = 0xFFFFFFFF; // Î÷èñòêà ïðåðûâàíèé îò GPIO PORT0

  VICADDRESS = 0;

}