UKSVEP_23550.2/Core/Src/lampa.c
2025-06-11 17:15:08 +03:00

86 lines
2.5 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.

#include "gpio.h"
#include "lampa.h"
#include "struc.h"
#include "message.h"
#include "package.h"
void ReadEnteres(void)
{
WORDE input;
input.bit.bit0 = !IN_06; // Контроль ИП1 (питание управляющего контроллера)
input.bit.bit1 = !IN_05; // Контроль ИП2 (питание периферийных устройств)
input.bit.bit2 = !IN_04; // Контроль ИП3 (питание эл. замков, ламп освещения, УКСИ)
input.bit.bit3 = !IN_03; // Контроль ИП4 (питание датчиков тока и напряжения +)
input.bit.bit4 = !IN_02; // Контроль ИП5 (питание датчиков тока и напряжения )
input.bit.bit5 = !IN_01; // Контроль ИП6 (питание драйверов)
input.bit.bit6 = !IN_07; // Контроль 3х фазного 380 В
input.bit.bit7 = !IN_08; // Заряд накопителя
input.bit.bit8 = !IN_09; // Разряд накопителя
input.bit.bit9 = IN_10; // Авария в сети 24 В
input.bit.bitD = (Squazh_U[3] > Squazh_L[3]);
input.bit.bitC = (Squazh_U[2] > Squazh_L[2]);
input.bit.bitB = (Squazh_U[1] > Squazh_L[1]);
input.bit.bitA = (Squazh_U[0] > Squazh_L[0]);
/*
input.bit.bitA = !IN_11; // Контроль питания ЛСУ
input.bit.bitB = !IN_12; // Контроль питания СВО
input.bit.bitC = !IN_13; // резерв
input.bit.bitD = !IN_14; // Контроль питания СКК
*/
Inputs.all = input.all;
Alarms.all = ~Inputs.all & Alarm_mask.all;
Alarms.bit.bit7 = 0; // Заряд накопителя
Alarms.bit.bit8 = Inputs.bit.bit8; // Разряд накопителя
Alarms.bit.bit9 = Inputs.bit.bit9; // Авария в сети 24 В
Errors.all = ~Inputs.all & Error_mask.all;
Errors.bit.bit9 = Inputs.bit.bit9; // Авария в сети 24 В
}
uint16_t ReadJumpers(void)
{
WORDE input;
input.all = 0;
input.bit.bit0 = !J0;
input.bit.bit1 = !J1;
input.bit.bit2 = !J2;
input.bit.bit3 = !J3;
return input.all;
}
uint16_t TestJumper(void)
{
return !Jselect;
}
void ReadSeanus(void)
{
static uint32_t cownt=0;
static uint32_t sum_u[4]={0,0,0,0};
// static float flt_u[4]={0,0,0,0};
uint8_t i;
sum_u[0] += !IN_11;
sum_u[1] += !IN_12;
sum_u[2] += !IN_13;
sum_u[3] += !IN_14;
if(++cownt>=10000)
{
cownt=0;
for(i=0;i<4;i++)
{
// flt_u[i] +=((float)sum_u[i]-flt_u[i])/10+1;
Squazh_U[i]=sum_u[i]/100;
sum_u[i] = 0;
} } }