#ifndef __DIGITAL_INPUT_H
#define __DIGITAL_INPUT_H

#include <stdbool.h>
#include "io.h"

//
void di_init(void);

//
void di_base_init(din_t *input);

//
void di_exti_init(void);

// 
void di_tim_init(void);

//
void di_load_sens_init(simple_gpio_t *sens);

//
void di_set(void);

//
uint8_t di_get(uint8_t channel);

//
void debounce(void);

// Периодический опрос входов и датчиков обрыва нагрузки
void di_task(void *params);



extern uint32_t di_cnt[DI_NUMBER];   // счетчики входов

extern uint16_t di_state[DI_NUMBER]; // состояние входа
extern uint16_t di_state_bit;        // битовое поле

extern uint16_t di_load_state[DO_NUMBER];  // состояние датчиков нагрузки
extern uint16_t di_load_state_bit;

extern uint16_t di_credibility_state[DO_NUMBER];  // достоверность состояния датчиков нагрузки
extern uint16_t di_credibility_state_bit;  // достоверность состояния датчиков нагрузки


#endif  // __DIGITAL_INPUT_H

