Добавить пояснения к исходникам, заголовкам TI, настройкам CCS и существующим проверкам. Зафиксировать правила кодировки, обзор модулей и аудит комментариев.
213 lines
12 KiB
C
213 lines
12 KiB
C
/* Обработка датчиков, вычисление величин и миллисекундный такт системы. Русские пояснения сохранены в 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
|