/*************************************************************************************************************
  Copyright (C) 2016-2022 JSC "ICC Milandr" 

*************************************************************************************************************/

/*
 *
 *  Файл:      readme.txt
 *  Описание:  Описание примера GPIO_Interrupt
 *
 *  История:
 *             04.10.22  - cоздан
 *
 */


/* Описание примера ----------------------------------------------------------------------------------------*/

В данном примере приведено, как настроить контроллер портов общего назначения GPIO.

Выводы PC[3:0], которые на модуле процессорном подключены к светодиодам VD2-VD5 (FLAG[3:0]), настраиваются в 
режим выхода. Вывод PB[22], который на модуле процессорном подключен к кнопке SB6 (IRQ0), настраивается в
режим входа с включенным внутренним резистором подтяжки к питанию. Для вывода PB[22] также настраивается
формирование запроса прерывания при фиксировании спадающего фронта.

В основном цикле программы выполняется переключение выводов PC[1:0] (светодиоды VD2-VD3). При нажатии на
кнопку SB6 (IRQ0) возникает прерывание от вывода PB[22], при этом в обработчике прерывания выполняется 
переключение выводов PC[3:2].

Обратите внимание, что функцию обработчика прерывания необходимо объявлять с атрибутом __attribute((interrupt)).
В этом случае исполняемый обработчик прерывания не может быть прерван другим прерыванием, даже более 
высокоприоритетным.
Если в программе требуется, чтобы исполняемый обработчик прерывания мог быть прерван более высокоприоритетным
прерыванием, то такой обработчик прерывания необходимо объявить с другим атрибутом, а именно 
__attribute__((interrupt("reentrant"))).


/* Содержание каталога -------------------------------------------------------------------------------------*/

    - main.c               Основная программа
    - project.ldf          Файл сценария для компоновщика
    - session.lldbinit     Файл инициализации периферии до запуска отладки
    - .cproject, .project  Файлы конфигурации проекта


/* Аппаратная и программная среда --------------------------------------------------------------------------*/

    - Интегрированная среда разработки CM-LYNX.
    - Отладочная плата для процессора 1967ВН044.


/* Использование -------------------------------------------------------------------------------------------*/

Для запуска примера необходимо выполнить следующие действия:
    - Создать новое или открыть существующее рабочее пространство (Workspace).
    - Выполнить импорт проекта "GPIO_Interrupt" в соответствии с "ML_GUI_Руководство_пользователя_R_Vx", 
      п. "Импорт существующего проекта".
    - Выполнить сборку проекта.
    - Создать конфигурацию отладки в соответствии с "ML_GUI_Руководство_пользователя_R_Vx", п. "Настройка 
      конфигурации и запуск отладки".
    - Запустить пример в режиме отладки.

Подробное описание библиотеки HAL с примерами использования функций приведено в каталоге по пути:
"CM-LYNX.x.yy.zz\toolchain\1967VN044\HAL\doc".
