//////////////////////////////////////////////////////////////////
//
// App:			DIO 
// Author:		Milan Korinek
// Version:		1.0
// Notice:		Functions for digital I/O card ports (PA - PD)
//////////////////////////////////////////////////////////////////


#ifndef DIO_PORTS_H_
#define DIO_PORTS_H_

#include <asf.h>
#include "support/support.h"

typedef struct _DIO_Pin_Config {
	
} DIO_Pin_Config;

extern const uint32_t DIO_PORTS_IO_LIST[];

void DIO_configure_ports(_In_ DIO_PortConfig_t ports_config[DIO_MAX_PORTS]);
void DIO_configure_port(_In_ uint32_t port, _In_ DIO_PortConfig_t port_config);

void DIO_set_outputs_ports(_In_ DIO_PortConfig_t port_config[DIO_MAX_PORTS], _In_ uint8_t masks[DIO_MAX_PORTS]);
void DIO_set_outputs_port(_In_ uint32_t port, _In_ uint8_t mask);
void DIO_set_output_channel(_In_ uint32_t channel, _In_ BOOL enable);

void DIO_get_inputs_ports(_Out_ uint8_t masks[DIO_MAX_PORTS]);
uint8_t DIO_get_inputs_port(_In_ uint32_t port);
BOOL DIO_get_input_channel(_In_ uint32_t channel);



#endif /* DIO_PORTS_H_ */