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

213 lines
12 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. */
/* Начинает условие: _MEASURE ещё не определён; защищает повторное включение или задаёт значение сборки. */
#ifndef _MEASURE
/* Определяет защитный символ или переключатель _MEASURE для последующей компиляции. */
#define _MEASURE
/* Выполняет миллисекундный такт датчиков, таймеров связи, регистратора и защиты нагрузки. */
interrupt void cpu_timer1_isr_SENS(void);
/* Объявляет интерфейс функции Init_sensors; реализация вызывается через этот прототип. */
void Init_sensors(void);
/* Объявляет интерфейс функции Init_sensors_more; реализация вызывается через этот прототип. */
void Init_sensors_more(void);
/* Объявляет интерфейс функции Init_packMask; реализация вызывается через этот прототип. */
void Init_packMask(void);
/* Объявляет интерфейс функции Temper_count; реализация вызывается через этот прототип. */
void Temper_count(int chan, int ovn);
/* Объявляет интерфейс функции Current_count; реализация вызывается через этот прототип. */
void Current_count(int chan);
/* Объявляет интерфейс функции Power_count; реализация вызывается через этот прототип. */
void Power_count(int chan);
/* Объявляет интерфейс функции calc_sensor_koef; реализация вызывается через этот прототип. */
void calc_sensor_koef(void);
/* Объявляет интерфейс функции Is_Voltage_Hi; реализация вызывается через этот прототип. */
void Is_Voltage_Hi(void);
/* Объявляет интерфейс функции calc_volta_edge; реализация вызывается через этот прототип. */
void calc_volta_edge(void);
/* Объявляет интерфейс функции er_anal; реализация вызывается через этот прототип. */
int er_anal(int term, unsigned int * count, long edge, int pre);
/* Начинает объявление типа, используемого структурами и интерфейсами этого модуля. */
typedef union
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Продолжает список аргументов, полей или выражение struct; порядок элементов сохраняется. */
struct
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Битовое поле Tear, ширина 1 бит; данные Tear. */
unsigned int Tear :1;
/* Битовое поле res, ширина 1 бит; данные res. */
unsigned int res :1;
/* Битовое поле Wry, ширина 1 бит; данные Wry. */
unsigned int Wry :1;
/* Битовое поле Out, ширина 1 бит; данные Out. */
unsigned int Out :1;
/* Битовое поле Over, ширина 1 бит; данные Over. */
unsigned int Over :1;
/* Битовое поле Hyper, ширина 1 бит; данные Hyper. */
unsigned int Hyper :1;
/* Битовое поле Contr, ширина 1 бит; данные Contr. */
unsigned int Contr :1;
/* Битовое поле res2, ширина 1 бит; данные res2. */
unsigned int res2 :1;
/* Битовое поле Stop, ширина 1 бит; данные Stop. */
unsigned int Stop :1;
/* Битовое поле Ready, ширина 1 бит; данные Ready. */
unsigned int Ready :1;
/* Битовое поле Discr1, ширина 1 бит; данные Discr1. */
unsigned int Discr1 :1;
/* Битовое поле Discr2, ширина 1 бит; данные Discr2. */
unsigned int Discr2 :1;
/* Битовое поле Discr3, ширина 1 бит; данные Discr3. */
unsigned int Discr3 :1;
/* Битовое поле Discr4, ширина 1 бит; данные Discr4. */
unsigned int Discr4 :1;
/* Битовое поле Ignor, ширина 1 бит; данные Ignor. */
unsigned int Ignor :1;
/* Битовое поле Bypas, ширина 1 бит; данные Bypas. */
unsigned int Bypas :1;
/* Продолжает список аргументов, полей или выражение } bit;; порядок элементов сохраняется. */
} bit;
/* Объявляет all — представление регистра целым словом без разбиения на битовые поля. */
unsigned int all;
/* Задаёт Imit = Discr4; данные Imit. */
#define Imit Discr4
/* Продолжает список аргументов, полей или выражение } ERROR;; порядок элементов сохраняется. */
} ERROR;
/* Начинает объявление типа, используемого структурами и интерфейсами этого модуля. */
typedef union
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Продолжает список аргументов, полей или выражение struct; порядок элементов сохраняется. */
struct
/* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */
{
/* Битовое поле Error, ширина 1 бит; ошибка. */
unsigned int Error :1;
/* Битовое поле Alarm, ширина 1 бит; данные Alarm. */
unsigned int Alarm :1;
/* Битовое поле OverHeat, ширина 1 бит; данные OverHeat. */
unsigned int OverHeat :1;
/* Битовое поле SubHeat, ширина 1 бит; данные SubHeat. */
unsigned int SubHeat :1;
/* Битовое поле OutHeat, ширина 1 бит; данные OutHeat. */
unsigned int OutHeat :1;
/* Битовое поле Test_lamp, ширина 1 бит; данные Test_lamp. */
unsigned int Test_lamp :1;
/* Продолжает список аргументов, полей или выражение } bit;; порядок элементов сохраняется. */
} bit;
/* Объявляет all — представление регистра целым словом без разбиения на битовые поля. */
unsigned int all;
/* Продолжает список аргументов, полей или выражение } FLAG;; порядок элементов сохраняется. */
} FLAG;
/* Задаёт NOER = 0xE000; данные NOER. */
#define NOER 0xE000//C
/* Задаёт EROR = 0x01FF; данные EROR. */
#define EROR 0x01FF
/* Задаёт READY_FREQ = (500.0 * 2); частота основного такта Timer1 в герцах. */
#define READY_FREQ (500.0 * 2)// Гц
/* Задаёт BLINK_FREQ = 2; данные BLINK_FREQ. */
#define BLINK_FREQ 2 // Гц
/* Задаёт BLINK_TIME = (READY_FREQ / BLINK_FREQ); данные BLINK_TIME. */
#define BLINK_TIME (READY_FREQ / BLINK_FREQ)
/* Задаёт CANPOWSE = 20; данные CANPOWSE. */
#define CANPOWSE 20
/* Задаёт ADC_FREQ = 3750; частота запуска последовательности АЦП в герцах. */
#define ADC_FREQ 3750 //3885.0//777//2000//20000 //777 //3885 // Гц (777*5)
/* Задаёт DAC_FREQ = 200; частота обновления тока ЦАП в герцах. */
#define DAC_FREQ 200//5 // Гц
/* Задаёт LOAD_TIME = 30; время нарастания тока нагрузки в секундах. */
#define LOAD_TIME 30//15 // sec
/* Объявляет Caliber_time — данные Caliber_time. Память определена в другом модуле. */
extern unsigned int Caliber_time;
/* Задаёт SENS_ERR_WAIT = 10; данные SENS_ERR_WAIT. */
#define SENS_ERR_WAIT 10
/* Задаёт maximum_bright = 10; данные maximum_bright. */
#define maximum_bright 10
/* Задаёт Pi = 3.1415926535897932384626433832795; данные Pi. */
#define Pi 3.1415926535897932384626433832795
/* Задаёт Pi_2 = 1.5707963267948966192313216916398; данные Pi_2. */
#define Pi_2 1.5707963267948966192313216916398
/* Задаёт ZERO = 27; данные ZERO. */
#define ZERO 27
/* Задаёт Cooling = 5; данные Cooling. */
#define Cooling 5 // (°С) Гистерезис по снатию перегрева
/* Задаёт COSPi6 = 0.86602540378443864676372317075294; данные COSPi6. */
#define COSPi6 0.86602540378443864676372317075294
/* Задаёт RADIX2 = 1.4142135623730950488016887242097; данные RADIX2. */
#define RADIX2 1.4142135623730950488016887242097
/* Задаёт POWER_380 = 0; данные POWER_380. */
#define POWER_380 0 // питание 380В
/* Задаёт POWER_38O = 1; данные POWER_38O. */
#define POWER_38O 1 // питание 380В
/* Задаёт CURRENT = 2; данные CURRENT. */
#define CURRENT 2 // ток
/* Задаёт VOLTAGE = 3; данные VOLTAGE. */
#define VOLTAGE 3 // напражение
/* Задаёт POWER_31 = 4; данные POWER_31. */
#define POWER_31 4 // питание 31В
/* Задаёт POWER_27 = 5; данные POWER_27. */
#define POWER_27 5 // питание 24В
/* Задаёт POWER_24 = 6; данные POWER_24. */
#define POWER_24 6 // питание 24В
/* Задаёт POWER_15 = 7; данные POWER_15. */
#define POWER_15 7 // питание 15В
/* Задаёт TERMO_AD = 8; данные TERMO_AD. */
#define TERMO_AD 8 // термодатчик мелкосхема
/* Задаёт TERMO_RS = 9; данные TERMO_RS. */
#define TERMO_RS 9 // терморезистор
/* Задаёт TRM_OBEH = 10; данные TRM_OBEH. */
#define TRM_OBEH 10 // термодатчик овен
/* Объявляет TPL_CANS — данные TPL_CANS; tpl_cans — данные tpl_cans. Память определена в другом модуле. */
extern int TPL_CANS,tpl_cans;
/* Объявляет READY — данные READY. Память определена в другом модуле. */
extern int READY;
/* Объявляет filter — данные filter. Память определена в другом модуле. */
extern FILTERBAT filter[];
/* Объявляет adc_filter — АЦП filter. Память определена в другом модуле. */
extern FILTERBAT adc_filter[];
/* Объявляет out_filter — данные out_filter. Память определена в другом модуле. */
extern FILTERBAT out_filter[];
/* Объявляет sens_type — данные sens_type. Память определена в другом модуле. */
extern int sens_type[];
/* Объявляет ext_temp — данные ext_temp; ext_diag — данные ext_diag. Память определена в другом модуле. */
extern int ext_temp[], ext_diag[];
/* Объявляет Lonely — данные Lonely. Память определена в другом модуле. */
extern unsigned long Lonely;
/* Объявляет CanPowse — CAN Powse; CanGO — CAN GO. Память определена в другом модуле. */
extern unsigned int CanPowse,CanGO;
/* Объявляет Maska[][8];. Память определена в другом модуле. */
extern unsigned int Maska[][8];
/* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */
#endif //_MEASURE