Инициализация порта

 
в палитре на схеме

Блок реализует настройку порта микропроцессора. Программная реализация блока, расположена в заголовочном файле port.h файла main.c проекта Test_Driver (в среде разработки Keil), который создается при генерации кода проекта и содержит тексты программ алгоритма на языке СИ. Блок настройки порта реализован на основании блока язык программирования и содержит в себе код на встроенном языке Simentech формирующем значения входных переменных для функции настройки порта Init_port().

Всего у микросхемы K1986ВЕ92QI, помещенной в корпус LQFP64, есть 43 линии ввода-вывода, объединенные в 6 портов, как показано в таблице ниже.

Таблица 1. Порты и линии связи
Наименование порта Количество линий Наименование линий
PORTA 8 PA0…PA7
PORTB 11 PB0…PB10
PORTC 3 PC0…PC2
PORTD 8 PD0…PD7
PORTE 6 PE0…PE3, PE6…PE7
PORTF 7 PF0…PF6

Файл port.h :

void Init_port(uint16_t Pin, uint16_t PORT_MODE, uint16_t PORT_FUNC, uint16_t PORT_OE, uint16_t PORT_SPEED, MDR_PORT_TypeDef* MDR_PORT)
{
 // Структура для инициализации портов
 PORT_InitTypeDef PortInitStructure;

 // Разрешить тактирование требуемых периферийных устройств
 RST_CLK_PCLKcmd ( PCLK_BIT(MDR_PORT), ENABLE);

 // Сделать выходами порты, к которым подключены светодиоды
 PORT_StructInit (&PortInitStructure);

 PortInitStructure.PORT_Pin = Pin;
 PortInitStructure.PORT_MODE = PORT_MODE;
 PortInitStructure.PORT_FUNC = PORT_FUNC;
 PortInitStructure.PORT_OE = PORT_OE;
 PortInitStructure.PORT_SPEED = PORT_SPEED;

 PORT_Init (MDR_PORT, &PortInitStructure);
}

Входы

нет

Выходы

Свойства:

  • Номера пинов - Pins - линии выбранного порта их может быть произвольное количество они формируются по схеме ИЛИ. По умолчанию - Pin_0;
  • Тип порта - PORT_MODE - указывают режим работы выбранных пинов. Возможны два варианта значений: PORT_MODE_ANALOG – линия является аналоговой; PORT_MODE_DIGITAL – линия является цифровой. Режим аналоговой линии выбирается, если требуется работать с АЦП, ЦАП, аналоговым компаратором или внешним низкочастотным кварцевым резонатором. В остальных случаях используется режим цифровой линии. По умолчанию - PORT_MODE_DIGITAL;
  • Функция - PORT_FUNC - конфигурация линий, если линия сконфигурирована как цифровая, то ее нужно дополнительно сконфигурировать, выбрав одну из возможных функций. Для этого в поле PORT_FUNC типа PORT_FUNC_TypeDef заносят одно из следующих значений: PORT_FUNC_PORT – линия используется, как цифровой вход или выход; PORT_FUNC_MAIN – для линии используется основная функция; PORT_FUNC_ALTER – для линии используется альтернативная функция; PORT_FUNC_OVERRID – для линии используется перегруженная функция. По умолчанию - PORT_FUNC_PORT;
  • Направление ввода - PORT_OE - Вход или выход. Если требуется сделать пин цифровым входом, то напишем: PortInitStructure.PORT_OE = PORT_OE_IN; А если цифровым выходом, то: PortInitStructure.PORT_OE = PORT_OE_OUT. По умолчанию - PORT_OE_OUT;
  • Скорость - PORT_SPEED - Показывают скорость работы линии, т.е. какой частоты сигнал может через нее проходить. Возможны следующие значения: PORT_OUTPUT_OFF – выход выключен; PORT_SPEED_SLOW – низкая скорость (фронт порядка 100 нс, частота до 5 МГц); PORT_SPEED_FAST – высокая скорость (фронт порядка 20 нс, частота до 25 МГц); PORT_SPEED_MAXFAST – предельно высокая скорость (фронт порядка 10 нс, частота до 50 МГц). По умолчанию - PORT_SPEED_FAST;
  • Порт - MDR_PORT - указатель на порт. По умолчанию - MDR_PORTA_BASE.

Параметры

нет