#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_state(void);

//
void di_set(void);

//
uint8_t di_get(uint8_t channel);

//
void debounce(void);

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

//
void di_load_task(void *params);


extern uint32_t di_cnt[];

extern uint16_t di_state[];
extern uint16_t di_state_bit; 

extern uint16_t di_load_state[];  
extern uint16_t di_load_state_bit;

extern uint16_t di_output_state[];    
extern uint16_t di_output_state_bit;  

extern uint16_t di_credibility_state[];
extern uint16_t di_credibility_state_bit;


#endif  // __DIGITAL_INPUT_H

