86 lines
2.5 KiB
C
86 lines
2.5 KiB
C
|
||
#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;
|
||
} } }
|
||
|
||
|