Инициализация порта
| в палитре | на схеме |
Блок реализует настройку порта микропроцессора. Программная реализация блока, расположена в заголовочном файле port.h файла main.c проекта Test_Driver (в среде разработки Keil), который создается при генерации кода проекта и содержит тексты программ алгоритма на языке СИ. Блок настройки порта реализован на основании блока язык программирования и содержит в себе код на встроенном языке SimInTech формирующем значения входных переменных для функции настройки порта Init_port().
Всего у микросхемы K1986ВЕ92QI, помещенной в корпус LQFP64, есть 43 линии ввода-вывода, объединенные в 6 портов, как показано в таблице ниже.
| Наименование порта | Количество линий | Наименование линий |
|---|---|---|
| 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);
}
Входные порты
Блок не имеет входных портов.
Выходные порты
- ready - возвращает 1, это необходимо для определения порядка сортировки последующих блоков.
Свойства
- Номера пинов - 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.
Параметры
Блок не имеет параметров.