Files
Balsam_167/Source/Internal/peripher.c
Andrey f741741cf8 Сохранить русские комментарии и настройки проекта в UTF-8
Добавить пояснения к исходникам, заголовкам TI, настройкам CCS и существующим проверкам. Зафиксировать правила кодировки, обзор модулей и аудит комментариев.
2026-10-12 12:24:48 +03:00

520 lines
47 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Перемычки режима платы, дискретные входы и выходы. Русские пояснения сохранены в UTF-8. */
/* Подключает "DSP2833x_Device.h": поставляемое TI описание Device для семейства C2833x. */
#include "DSP2833x_Device.h" // DSP281x Headerfile Include File
/* Подключает "filter_bat2.h": накопительный фильтр измерительных каналов. */
#include "filter_bat2.h"
/* Подключает "measure.h": обработка датчиков, вычисление величин и миллисекундный такт системы. */
#include "measure.h"
/* Подключает "RS485.h": приём и передача SCI-A/SCI-B, упаковка команд и FIFO первого порта. */
#include "RS485.h"
/* Подключает "message.h": обработка Modbus, заводские параметры и сохранение настроек. */
#include "message.h"
/* Подключает "package.h": адреса устройств, типы плат и псевдонимы технологических регистров. */
#include "package.h"
/* Подключает "pulto.h": обмен и индикация пульта. */
#include "pulto.h"
/* Подключает "peripher.h": перемычки режима платы, дискретные входы и выходы. */
#include "peripher.h"
/* Подключает "GPIO_table.h": таблица назначения GPIO и макросы аппаратных сигналов платы. */
#include "GPIO_table.h"
/* Объявляет Mode — рабочий адрес или режим платы, выбранный перемычками; Desk — аппаратно определённый тип платы; TermoAD — данные TermoAD; TermoRS — данные TermoRS; TermoSW — данные TermoSW. Начальное значение задаётся справа от знака равенства. */
int Mode,Desk,TermoAD=0,TermoRS=0,TermoSW=0,Kurrent=0,Kalibro=0,Owen=0;
/* Объявляет INcount0 — данные INcount0; INcount1 — данные INcount1. Начальное значение задаётся справа от знака равенства. */
unsigned int INcount0=0,INcount1=0;
/* Продолжает список аргументов, полей или выражение LONGE DigErr;; порядок элементов сохраняется. */
LONGE DigErr;
/* Объявляет MUX_GPIO32 — выбор функции вывода 32; MUX_GPIO48 — выбор функции вывода 48; DIR_GPIO32 — данные DIR_GPIO32; DIR_GPIO48 — данные DIR_GPIO48. */
int MUX_GPIO32,MUX_GPIO48,DIR_GPIO32,DIR_GPIO48;
/* Начинает функцию setup_leds_line; назначение модуля — перемычки режима платы, дискретные входы и выходы. */
void setup_leds_line()
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Записывает MUX_GPIO32 значением GpioCtrlRegs.GPBMUX1.bit.GPIO32; выбор функции вывода 32. */
MUX_GPIO32 = GpioCtrlRegs.GPBMUX1.bit.GPIO32;
/* Записывает MUX_GPIO48 значением GpioCtrlRegs.GPBMUX2.bit.GPIO48; выбор функции вывода 48. */
MUX_GPIO48 = GpioCtrlRegs.GPBMUX2.bit.GPIO48;
/* Записывает DIR_GPIO32 значением GpioCtrlRegs.GPBDIR.bit.GPIO32; данные DIR_GPIO32. */
DIR_GPIO32 = GpioCtrlRegs.GPBDIR.bit.GPIO32;
/* Записывает DIR_GPIO48 значением GpioCtrlRegs.GPBDIR.bit.GPIO48; данные DIR_GPIO48. */
DIR_GPIO48 = GpioCtrlRegs.GPBDIR.bit.GPIO48;
/* Разрешение записи в защищённые регистры периферии. */
EALLOW;
/* Записывает GpioCtrlRegs.GPBMUX1.bit.GPIO32 значением 0; аппаратная линия ввода/вывода GPIO32. */
GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 0;
/* Записывает GpioCtrlRegs.GPBMUX2.bit.GPIO48 значением 0; аппаратная линия ввода/вывода GPIO48. */
GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 0;
/* Записывает GpioCtrlRegs.GPBDIR.bit.GPIO32 значением 1; аппаратная линия ввода/вывода GPIO32. */
GpioCtrlRegs.GPBDIR.bit.GPIO32 = 1;
/* Записывает GpioCtrlRegs.GPBDIR.bit.GPIO48 значением 1; аппаратная линия ввода/вывода GPIO48. */
GpioCtrlRegs.GPBDIR.bit.GPIO48 = 1;
/* Закрытие доступа к защищённым регистрам периферии. */
EDIS;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Начинает функцию unsetup_leds_line; назначение модуля — перемычки режима платы, дискретные входы и выходы. */
void unsetup_leds_line()
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Разрешение записи в защищённые регистры периферии. */
EALLOW;
/* Записывает GpioCtrlRegs.GPBMUX1.bit.GPIO32 значением MUX_GPIO32; аппаратная линия ввода/вывода GPIO32. */
GpioCtrlRegs.GPBMUX1.bit.GPIO32 = MUX_GPIO32;
/* Записывает GpioCtrlRegs.GPBMUX2.bit.GPIO48 значением MUX_GPIO48; аппаратная линия ввода/вывода GPIO48. */
GpioCtrlRegs.GPBMUX2.bit.GPIO48 = MUX_GPIO48;
/* Записывает GpioCtrlRegs.GPBDIR.bit.GPIO32 значением DIR_GPIO32; аппаратная линия ввода/вывода GPIO32. */
GpioCtrlRegs.GPBDIR.bit.GPIO32 = DIR_GPIO32;
/* Записывает GpioCtrlRegs.GPBDIR.bit.GPIO48 значением DIR_GPIO48; аппаратная линия ввода/вывода GPIO48. */
GpioCtrlRegs.GPBDIR.bit.GPIO48 = DIR_GPIO48;
/* Закрытие доступа к защищённым регистрам периферии. */
EDIS;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Определяет адрес и тип платы по аппаратным перемычкам и задаёт рабочий режим. */
void get_Mode()
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Разрешение записи в защищённые регистры периферии. */
EALLOW;
/* Оставляет биты маски GpioCtrlRegs.GPAMUX1.all значением 0xFF000000; представление регистра целым словом без разбиения на битовые поля. */
GpioCtrlRegs.GPAMUX1.all &= 0xFF000000; // 00—11
/* Оставляет биты маски GpioCtrlRegs.GPAMUX2.all значением 0xFF00003F; представление регистра целым словом без разбиения на битовые поля. */
GpioCtrlRegs.GPAMUX2.all &= 0xFF00003F; // 19—27
/* Оставляет биты маски GpioCtrlRegs.GPBMUX1.all значением 0xFFFFFFC0; представление регистра целым словом без разбиения на битовые поля. */
GpioCtrlRegs.GPBMUX1.all &= 0xFFFFFFC0; // 32—34
/* Оставляет биты маски GpioCtrlRegs.GPBMUX2.all значением 0x000FF000; представление регистра целым словом без разбиения на битовые поля. */
GpioCtrlRegs.GPBMUX2.all &= 0x000FF000; // 48—53, 58—63
/* Записывает GpioCtrlRegs.GPADIR.bit.GPIO20 значением 0; аппаратная линия ввода/вывода GPIO20. */
GpioCtrlRegs.GPADIR.bit.GPIO20 = 0;
/* Записывает GpioCtrlRegs.GPADIR.bit.GPIO21 значением 0; аппаратная линия ввода/вывода GPIO21. */
GpioCtrlRegs.GPADIR.bit.GPIO21 = 0;
/* Записывает GpioCtrlRegs.GPADIR.bit.GPIO22 значением 0; аппаратная линия ввода/вывода GPIO22. */
GpioCtrlRegs.GPADIR.bit.GPIO22 = 0;
/* Записывает GpioCtrlRegs.GPBDIR.bit.GPIO51 значением 0; аппаратная линия ввода/вывода GPIO51. */
GpioCtrlRegs.GPBDIR.bit.GPIO51 = 0;
/* Закрытие доступа к защищённым регистрам периферии. */
EDIS;
/* Записывает Mode значением 1; рабочий адрес или режим платы, выбранный перемычками. */
Mode = 1;
/* Увеличивает Mode значением 1 * !GpioDataRegs.GPADAT.bit.GPIO21; рабочий адрес или режим платы, выбранный перемычками. */
Mode += 1 * !GpioDataRegs.GPADAT.bit.GPIO21;
/* Увеличивает Mode значением 2 * !GpioDataRegs.GPADAT.bit.GPIO20; рабочий адрес или режим платы, выбранный перемычками. */
Mode += 2 * !GpioDataRegs.GPADAT.bit.GPIO20;
/* Увеличивает Mode значением 4 * !GpioDataRegs.GPADAT.bit.GPIO22; рабочий адрес или режим платы, выбранный перемычками. */
Mode += 4 * !GpioDataRegs.GPADAT.bit.GPIO22;
/* Увеличивает Mode значением 8 * !GpioDataRegs.GPBDAT.bit.GPIO51; рабочий адрес или режим платы, выбранный перемычками. */
Mode += 8 * !GpioDataRegs.GPBDAT.bit.GPIO51;
/* Проверяет if( (Mode==adr_POW1) или (Mode==adr_POW2)) Desk = dsk_COMM; последующий оператор выполняется только при истинном условии. */
if( (Mode==adr_POW1)||(Mode==adr_POW2)) Desk = dsk_COMM;
/* Проверяет if( (Mode==adr_TRN1) или (Mode==adr_TRN2)) Desk = dsk_BKST; последующий оператор выполняется только при истинном условии. */
if( (Mode==adr_TRN1)||(Mode==adr_TRN2)) Desk = dsk_BKST;
/* Проверяет if( (Mode==adr_LOA1) или (Mode==adr_LOA2)) Desk = dsk_LOAD; последующий оператор выполняется только при истинном условии. */
if( (Mode==adr_LOA1)||(Mode==adr_LOA2)) Desk = dsk_LOAD;
/* Проверяет if (Mode==adr_ENG1) Desk = dsk_BKSD; последующий оператор выполняется только при истинном условии. */
if (Mode==adr_ENG1) Desk = dsk_BKSD;
/* Проверяет if (Mode==adr_PULT) Desk = dsk_EPLT; последующий оператор выполняется только при истинном условии. */
if (Mode==adr_PULT) Desk = dsk_EPLT;
/* Проверяет if (Mode==adr_SHKF) Desk = dsk_SHKF; последующий оператор выполняется только при истинном условии. */
if (Mode==adr_SHKF) Desk = dsk_SHKF;
/* Проверяет if( (Desk==dsk_COMM) или (Desk==dsk_LOAD)) Kurrent = 1; последующий оператор выполняется только при истинном условии. */
if( (Desk==dsk_COMM)||(Desk==dsk_LOAD)) Kurrent = 1;
/* Проверяет if( (Desk==dsk_BKSD) или (Desk==dsk_BKST)) TermoRS = 1; последующий оператор выполняется только при истинном условии. */
if( (Desk==dsk_BKSD)||(Desk==dsk_BKST)) TermoRS = 1;
/* Проверяет if( (Desk==dsk_COMM) или (Desk==dsk_SHKF)) TermoAD = 1; последующий оператор выполняется только при истинном условии. */
if( (Desk==dsk_COMM)||(Desk==dsk_SHKF)) TermoAD = 1;
/* Проверяет if( (Desk==dsk_COMM) или (Desk==dsk_BKST)) TermoSW = 2; последующий оператор выполняется только при истинном условии. */
if( (Desk==dsk_COMM)||(Desk==dsk_BKST)) TermoSW = 2;
/* Проверяет if (Desk==dsk_BKSD) TermoSW = 1; последующий оператор выполняется только при истинном условии. */
if (Desk==dsk_BKSD) TermoSW = 1;
/* Включает следующий блок только при определённом символе CALIB_RS. */
#ifdef CALIB_RS
/* Проверяет if (Desk!=dsk_EPLT) Kalibro = 1; последующий оператор выполняется только при истинном условии. */
if (Desk!=dsk_EPLT) Kalibro = 1;
/* Выбирает альтернативный блок текущего условия компиляции. */
#else
/* Проверяет if( (Desk==dsk_COMM) или (Desk==dsk_SHKF) или; последующий оператор выполняется только при истинном условии. */
if( (Desk==dsk_COMM)||(Desk==dsk_SHKF)||
/* Записывает Kalibro значением 1; данные Kalibro. */
(Desk==dsk_LOAD) ) Kalibro = 1;
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
/* Включает следующий блок только при определённом символе OWEN. */
#ifdef OWEN
/* Проверяет if (Desk==dsk_COMM) Owen = OWEN_DT; последующий оператор выполняется только при истинном условии. */
if (Desk==dsk_COMM) Owen = OWEN_DT;
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif
/* Сбрасывает аппаратный сигнал через clear_LED_OUT_1();. */
clear_LED_OUT_1();
/* Сбрасывает аппаратный сигнал через clear_LED_OUT_2();. */
clear_LED_OUT_2();
/* Сбрасывает аппаратный сигнал через clear_RES_OUT_1();. */
clear_RES_OUT_1();
/* Сбрасывает аппаратный сигнал через clear_RES_OUT_2();. */
clear_RES_OUT_2();
/* Разрешение записи в защищённые регистры периферии. */
EALLOW;
/* Вызывает switch с аргументами (Desk) в текущей последовательности операций. */
switch(Desk)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Ветвь выбора для dsk_COMM; выполняется при совпадении селектора switch. */
case dsk_COMM: GpioCtrlRegs.GPADIR.all = COMM_GPADIR;
/* Записывает GpioCtrlRegs.GPBDIR.all значением COMM_GPBDIR; break; представление регистра целым словом без разбиения на битовые поля. */
GpioCtrlRegs.GPBDIR.all = COMM_GPBDIR; break;
/* Ветвь выбора для dsk_BKSD; выполняется при совпадении селектора switch. */
case dsk_BKSD: GpioCtrlRegs.GPADIR.all = BKSD_GPADIR;
/* Записывает GpioCtrlRegs.GPBDIR.all значением BKSD_GPBDIR; break; представление регистра целым словом без разбиения на битовые поля. */
GpioCtrlRegs.GPBDIR.all = BKSD_GPBDIR; break;
/* Ветвь выбора для dsk_BKST; выполняется при совпадении селектора switch. */
case dsk_BKST: GpioCtrlRegs.GPADIR.all = BKST_GPADIR;
/* Записывает GpioCtrlRegs.GPBDIR.all значением BKST_GPBDIR; break; представление регистра целым словом без разбиения на битовые поля. */
GpioCtrlRegs.GPBDIR.all = BKST_GPBDIR; break;
/* Ветвь выбора для dsk_EPLT; выполняется при совпадении селектора switch. */
case dsk_EPLT: GpioCtrlRegs.GPADIR.all = PLT2_GPADIR;
/* Записывает GpioCtrlRegs.GPBDIR.all значением PLT2_GPBDIR; break; представление регистра целым словом без разбиения на битовые поля. */
GpioCtrlRegs.GPBDIR.all = PLT2_GPBDIR; break;
/* Ветвь выбора для dsk_LOAD; выполняется при совпадении селектора switch. */
case dsk_LOAD: GpioCtrlRegs.GPADIR.all = LOAD_GPADIR;
/* Записывает GpioCtrlRegs.GPBDIR.all значением LOAD_GPBDIR; представление регистра целым словом без разбиения на битовые поля. */
GpioCtrlRegs.GPBDIR.all = LOAD_GPBDIR;
/* Записывает GpioDataRegs.GPASET.bit.GPIO3 значением 1; break; аппаратная линия ввода/вывода GPIO3. */
GpioDataRegs.GPASET.bit.GPIO3=1; break;
/* Ветвь выбора для dsk_SHKF; выполняется при совпадении селектора switch. */
case dsk_SHKF: GpioCtrlRegs.GPADIR.all = SHKF_GPADIR;
/* Записывает GpioCtrlRegs.GPBDIR.all значением SHKF_GPBDIR; break; представление регистра целым словом без разбиения на битовые поля. */
GpioCtrlRegs.GPBDIR.all = SHKF_GPBDIR; break;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Закрытие доступа к защищённым регистрам периферии. */
EDIS;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Начинает функцию select_tpl_255; назначение модуля — перемычки режима платы, дискретные входы и выходы. */
void select_tpl_255(void)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Проверяет if(Desk==dsk_BKSD); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_BKSD)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Задаёт BKSD_A_tpl_255 = ((1L<<11) + (1L<<9) + (1L<<7) + (1L<<3)); данные BKSD_A_tpl_255. */
#define BKSD_A_tpl_255 ((1L<<11) + (1L<<9) + (1L<<7) + (1L<<3))
/* Записывает GpioDataRegs.GPACLEAR.all значением BKSD_A_tpl_255; представление регистра целым словом без разбиения на битовые поля. */
GpioDataRegs.GPACLEAR.all = BKSD_A_tpl_255;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Проверяет if(Desk==dsk_COMM); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_COMM)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Задаёт COMM_A_tpl_255 = ((1L<<27) + (1L<<24) + (1L<<25)); данные COMM_A_tpl_255. */
#define COMM_A_tpl_255 ((1L<<27) + (1L<<24) + (1L<<25))
/* Задаёт COMM_B_tpl_255 = ((1L<<(49-32)) + (1L<<(52-32))); данные COMM_B_tpl_255. */
#define COMM_B_tpl_255 ((1L<<(49-32)) + (1L<<(52-32)))
/* Записывает GpioDataRegs.GPASET.all значением COMM_A_tpl_255; представление регистра целым словом без разбиения на битовые поля. */
GpioDataRegs.GPASET.all = COMM_A_tpl_255;
/* Записывает GpioDataRegs.GPBSET.all значением COMM_B_tpl_255; представление регистра целым словом без разбиения на битовые поля. */
GpioDataRegs.GPBSET.all = COMM_B_tpl_255;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Проверяет if(Desk==dsk_BKST); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_BKST)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Задаёт BKST_A_tpl_zero = ((1L<<11) + (1L<<9) + (1L<<7) + (1L<<3) + (1L<<1) + (1L<<8) + (1L<<6) + (1L<<0) + (1L<<27) + (1L<<24)); данные BKST_A_tpl_zero. */
#define BKST_A_tpl_zero ((1L<<11) + (1L<<9) + (1L<<7) + (1L<<3) + (1L<<1) + (1L<<8) + (1L<<6) + (1L<<0) + (1L<<27) + (1L<<24))
/* Задаёт BKST_B_tpl_zero = ((1L<<(53-32)) + (1L<<(50-32))); данные BKST_B_tpl_zero. */
#define BKST_B_tpl_zero ((1L<<(53-32)) + (1L<<(50-32)))
/* Записывает GpioDataRegs.GPASET.all значением BKST_A_tpl_zero; представление регистра целым словом без разбиения на битовые поля. */
GpioDataRegs.GPASET.all = BKST_A_tpl_zero;
/* Записывает GpioDataRegs.GPBSET.all значением BKST_B_tpl_zero; представление регистра целым словом без разбиения на битовые поля. */
GpioDataRegs.GPBSET.all = BKST_B_tpl_zero;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
} }
/* Начинает функцию select_tpl_canal; назначение модуля — перемычки режима платы, дискретные входы и выходы. */
void select_tpl_canal(int n_tpl)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Объявляет GPIO_A_tpl_set — аппаратная линия ввода/вывода GPIO_A_tpl_set. Начальное значение задаётся справа от знака равенства. */
unsigned long GPIO_A_tpl_set = 0;
/* Объявляет GPIO_B_tpl_set — аппаратная линия ввода/вывода GPIO_B_tpl_set. Начальное значение задаётся справа от знака равенства. */
unsigned long GPIO_B_tpl_set = 0;
/* Проверяет if(Desk==dsk_BKSD); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_BKSD)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Проверяет if(!(n_tpl&0x01)) GPIO_A_tpl_set|=(1L<<11); последующий оператор выполняется только при истинном условии. */
if(!(n_tpl&0x01)) GPIO_A_tpl_set|=(1L<<11);
/* Проверяет if(!(n_tpl&0x02)) GPIO_A_tpl_set|=(1L<<9); последующий оператор выполняется только при истинном условии. */
if(!(n_tpl&0x02)) GPIO_A_tpl_set|=(1L<<9);
/* Проверяет if(!(n_tpl&0x04)) GPIO_A_tpl_set|=(1L<<7); последующий оператор выполняется только при истинном условии. */
if(!(n_tpl&0x04)) GPIO_A_tpl_set|=(1L<<7);
/* Проверяет if(!(n_tpl&0x08)) GPIO_A_tpl_set|=(1L<<3); последующий оператор выполняется только при истинном условии. */
if(!(n_tpl&0x08)) GPIO_A_tpl_set|=(1L<<3);
/* Записывает GpioDataRegs.GPASET.all значением GPIO_A_tpl_set; представление регистра целым словом без разбиения на битовые поля. */
GpioDataRegs.GPASET.all = GPIO_A_tpl_set;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Проверяет if(Desk==dsk_BKST); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_BKST)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Проверяет if(n_tpl==0) GpioDataRegs.GPACLEAR.bit.GPIO11=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==0) GpioDataRegs.GPACLEAR.bit.GPIO11=1;
/* Проверяет if(n_tpl==1) GpioDataRegs.GPACLEAR.bit.GPIO9=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==1) GpioDataRegs.GPACLEAR.bit.GPIO9=1;
/* Проверяет if(n_tpl==2) GpioDataRegs.GPACLEAR.bit.GPIO7=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==2) GpioDataRegs.GPACLEAR.bit.GPIO7=1;
/* Проверяет if(n_tpl==3) GpioDataRegs.GPACLEAR.bit.GPIO3=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==3) GpioDataRegs.GPACLEAR.bit.GPIO3=1;
/* Проверяет if(n_tpl==4) GpioDataRegs.GPACLEAR.bit.GPIO1=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==4) GpioDataRegs.GPACLEAR.bit.GPIO1=1;
/* Проверяет if(n_tpl==5) GpioDataRegs.GPACLEAR.bit.GPIO8=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==5) GpioDataRegs.GPACLEAR.bit.GPIO8=1;
/* Проверяет if(n_tpl==6) GpioDataRegs.GPACLEAR.bit.GPIO6=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==6) GpioDataRegs.GPACLEAR.bit.GPIO6=1;
/* Проверяет if(n_tpl==7) GpioDataRegs.GPACLEAR.bit.GPIO0=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==7) GpioDataRegs.GPACLEAR.bit.GPIO0=1;
/* Проверяет if(n_tpl==8) GpioDataRegs.GPACLEAR.bit.GPIO27=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==8) GpioDataRegs.GPACLEAR.bit.GPIO27=1;
/* Проверяет if(n_tpl==9) GpioDataRegs.GPACLEAR.bit.GPIO24=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==9) GpioDataRegs.GPACLEAR.bit.GPIO24=1;
/* Проверяет if(n_tpl==10) GpioDataRegs.GPBCLEAR.bit.GPIO53=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==10) GpioDataRegs.GPBCLEAR.bit.GPIO53=1;
/* Проверяет if(n_tpl==11) GpioDataRegs.GPBCLEAR.bit.GPIO50=1; последующий оператор выполняется только при истинном условии. */
if(n_tpl==11) GpioDataRegs.GPBCLEAR.bit.GPIO50=1;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Проверяет if(Desk==dsk_COMM); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_COMM)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Проверяет if(!(n_tpl&0x01)) GPIO_A_tpl_set|=(1L<<27); последующий оператор выполняется только при истинном условии. */
if(!(n_tpl&0x01)) GPIO_A_tpl_set|=(1L<<27);
/* Проверяет if(!(n_tpl&0x02)) GPIO_A_tpl_set|=(1L<<24); последующий оператор выполняется только при истинном условии. */
if(!(n_tpl&0x02)) GPIO_A_tpl_set|=(1L<<24);
/* Проверяет if(!(n_tpl&0x04)) GPIO_A_tpl_set|=(1L<<25); последующий оператор выполняется только при истинном условии. */
if(!(n_tpl&0x04)) GPIO_A_tpl_set|=(1L<<25);
/* Проверяет if(!(n_tpl&0x08)) GPIO_B_tpl_set|=(1L<<(49-32)); последующий оператор выполняется только при истинном условии. */
if(!(n_tpl&0x08)) GPIO_B_tpl_set|=(1L<<(49-32));
/* Проверяет if(!(n_tpl&0x10)) GPIO_B_tpl_set|=(1L<<(52-32)); последующий оператор выполняется только при истинном условии. */
if(!(n_tpl&0x10)) GPIO_B_tpl_set|=(1L<<(52-32));
/* Записывает GpioDataRegs.GPACLEAR.all значением GPIO_A_tpl_set; представление регистра целым словом без разбиения на битовые поля. */
GpioDataRegs.GPACLEAR.all = GPIO_A_tpl_set;
/* Записывает GpioDataRegs.GPBCLEAR.all значением GPIO_B_tpl_set; представление регистра целым словом без разбиения на битовые поля. */
GpioDataRegs.GPBCLEAR.all = GPIO_B_tpl_set;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
} }
/* Считывает кнопки, обновляет флаги команд и учитывает текущий тип платы. */
void get_Buttons()
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Объявляет butt — данные butt. Начальное значение задаётся справа от знака равенства. */
unsigned long butt =0;
/* Объявляет fluf — данные fluf. Начальное значение задаётся справа от знака равенства. */
unsigned long fluf =0;
/* Проверяет if(Desk==dsk_BKSD); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_BKSD)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Записывает bTestLamp значением !GpioDataRegs.GPBDAT.bit.GPIO50; данные bTestLamp. */
bTestLamp = !GpioDataRegs.GPBDAT.bit.GPIO50;
/* Записывает bSecretBt значением !GpioDataRegs.GPBDAT.bit.GPIO49; данные bSecretBt. */
bSecretBt = !GpioDataRegs.GPBDAT.bit.GPIO49;
/* Записывает InputRep0 значением bTestLamp; вход Rep 0. */
InputRep0 = bTestLamp;
/* Записывает InputRep1 значением bSecretBt; вход Rep 1. */
InputRep1 = bSecretBt;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO0) butt +=0x0001; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO0) butt +=0x0001;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO2) butt +=0x0002; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO2) butt +=0x0002;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO10)butt +=0x0004; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO10)butt +=0x0004;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO4) butt +=0x0008; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO4) butt +=0x0008;
/* Записывает Inputs.all значением butt; представление регистра целым словом без разбиения на битовые поля. */
Inputs.all = butt;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Ничего такого в действительности нет
if(Desk==dsk_BKST)
{ bSecretBt = !GpioDataRegs.GPBDAT.bit.GPIO63;
InputRep1 = bSecretBt;
return;
} */
/* Проверяет if(Desk==dsk_COMM); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_COMM)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Записывает bSecretBt значением !GpioDataRegs.GPBDAT.bit.GPIO53; данные bSecretBt. */
bSecretBt = !GpioDataRegs.GPBDAT.bit.GPIO53;
/* Записывает bTermoCal значением er_anal(!GpioDataRegs.GPBDAT.bit.GPIO50, &INcount0, 0xFFFF, 0); данные bTermoCal. */
bTermoCal = er_anal(!GpioDataRegs.GPBDAT.bit.GPIO50, &INcount0, 0xFFFF, 0);
/* Записывает InputRep1 значением bSecretBt; вход Rep 1. */
InputRep1 = bSecretBt;
/* Записывает InputRep2 значением bTermoCal; вход Rep 2. */
InputRep2 = bTermoCal;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Проверяет if(Desk==dsk_EPLT); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_EPLT)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Записывает bTestLamp значением er_anal(GpioDataRegs.GPADAT.bit.GPIO26, &INcount0, 1000, 0); данные bTestLamp. */
bTestLamp = er_anal(GpioDataRegs.GPADAT.bit.GPIO26, &INcount0, 1000, 0);
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO27) butt +=0x0001; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO27) butt +=0x0001;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO24) butt +=0x0002; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO24) butt +=0x0002;
/* Проверяет if(GpioDataRegs.GPBDAT.bit.GPIO53) butt +=0x0004; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPBDAT.bit.GPIO53) butt +=0x0004;
/* Проверяет if(GpioDataRegs.GPBDAT.bit.GPIO50) butt +=0x0008; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPBDAT.bit.GPIO50) butt +=0x0008;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO26) butt +=0x0010; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO26) butt +=0x0010;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO23) butt +=0x0020; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO23) butt +=0x0020;
/* Проверяет if(GpioDataRegs.GPBDAT.bit.GPIO52) butt +=0x0040; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPBDAT.bit.GPIO52) butt +=0x0040;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO4 ) butt +=0x0080; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO4 ) butt +=0x0080;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO25) butt +=0x0100; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO25) butt +=0x0100;
/* Проверяет if(GpioDataRegs.GPBDAT.bit.GPIO49) butt +=0x0200; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPBDAT.bit.GPIO49) butt +=0x0200;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO11) butt +=0x0400; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO11) butt +=0x0400;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO5 ) butt +=0x0800; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO5 ) butt +=0x0800;
/* Проверяет if(GpioDataRegs.GPBDAT.bit.GPIO48) butt +=0x1000; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPBDAT.bit.GPIO48) butt +=0x1000;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO10) butt +=0x2000; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO10) butt +=0x2000; // Секретный вход
/* Записывает Inputs.all значением butt; представление регистра целым словом без разбиения на битовые поля. */
Inputs.all = butt;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Проверяет if(Desk==dsk_LOAD); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_LOAD)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Проверяет if(!GpioDataRegs.GPADAT.bit.GPIO6) butt +=0x0001; последующий оператор выполняется только при истинном условии. */
if(!GpioDataRegs.GPADAT.bit.GPIO6) butt +=0x0001; // OMEGA
/* Проверяет if(!GpioDataRegs.GPADAT.bit.GPIO8) butt +=0x0002; последующий оператор выполняется только при истинном условии. */
if(!GpioDataRegs.GPADAT.bit.GPIO8) butt +=0x0002; // Start_1
/* Проверяет if(!GpioDataRegs.GPADAT.bit.GPIO11) butt +=0x0004; последующий оператор выполняется только при истинном условии. */
if(!GpioDataRegs.GPADAT.bit.GPIO11) butt +=0x0004; // Res_in
/* Записывает Inputs.all значением butt; представление регистра целым словом без разбиения на битовые поля. */
Inputs.all = butt;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Проверяет if(Desk==dsk_SHKF); последующий оператор выполняется только при истинном условии. */
if(Desk==dsk_SHKF)
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Проверяет if(GpioDataRegs.GPBDAT.bit.GPIO53) fluf += 0x0000010; else butt += 0x0001; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPBDAT.bit.GPIO53) fluf += 0x0000010; else butt += 0x0001;
/* Проверяет if(GpioDataRegs.GPBDAT.bit.GPIO52) fluf += 0x0000040; else butt += 0x0002; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPBDAT.bit.GPIO52) fluf += 0x0000040; else butt += 0x0002;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO2) fluf += 0x0001000; else butt += 0x0004; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO2) fluf += 0x0001000; else butt += 0x0004;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO4) fluf += 0x0002000; else butt += 0x0008; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO4) fluf += 0x0002000; else butt += 0x0008;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO6) fluf += 0x0004000; else butt += 0x0010; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO6) fluf += 0x0004000; else butt += 0x0010;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO0) fluf += 0x0008000; else butt += 0x0020; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO0) fluf += 0x0008000; else butt += 0x0020;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO8) fluf += 0x0010000; else butt += 0x0040; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO8) fluf += 0x0010000; else butt += 0x0040;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO10) fluf += 0x0020000; else butt += 0x0080; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO10) fluf += 0x0020000; else butt += 0x0080;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO3) fluf += 0x0040000; else butt += 0x0100; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO3) fluf += 0x0040000; else butt += 0x0100;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO5) fluf += 0x0080000; else butt += 0x0200; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO5) fluf += 0x0080000; else butt += 0x0200;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO7) fluf += 0x0100000; else butt += 0x0400; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO7) fluf += 0x0100000; else butt += 0x0400;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO1) fluf += 0x0200000; else butt += 0x0800; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO1) fluf += 0x0200000; else butt += 0x0800;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO11) fluf += 0x0400000; else butt += 0x1000; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO11) fluf += 0x0400000; else butt += 0x1000;
/* Проверяет if(GpioDataRegs.GPADAT.bit.GPIO9) fluf += 0x0800000; else butt += 0x2000; последующий оператор выполняется только при истинном условии. */
if(GpioDataRegs.GPADAT.bit.GPIO9) fluf += 0x0800000; else butt += 0x2000;
/* Записывает DigErr.all значением fluf; представление регистра целым словом без разбиения на битовые поля. */
DigErr.all = fluf;
/* Записывает Inputs.all значением butt; представление регистра целым словом без разбиения на битовые поля. */
Inputs.all = butt;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}
/* Записывает butt значением 1 * !GpioDataRegs.GPADAT.bit.GPIO21; данные butt. */
butt = 1 * !GpioDataRegs.GPADAT.bit.GPIO21;
/* Увеличивает butt значением 2 * !GpioDataRegs.GPADAT.bit.GPIO20; данные butt. */
butt += 2 * !GpioDataRegs.GPADAT.bit.GPIO20;
/* Увеличивает butt значением 4 * !GpioDataRegs.GPADAT.bit.GPIO22; данные butt. */
butt += 4 * !GpioDataRegs.GPADAT.bit.GPIO22;
/* Увеличивает butt значением 8 * !GpioDataRegs.GPBDAT.bit.GPIO51; данные butt. */
butt += 8 * !GpioDataRegs.GPBDAT.bit.GPIO51;
/* Записывает Jumpers значением butt; данные Jumpers. */
Jumpers = butt;
/* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */
}