/*==============================================================================
 * Инициализация портов с использованием бибилотеки PLIB035
 *------------------------------------------------------------------------------
 * ЦНИИ СЭТ, Разваляев Алексей <wot890089@mail.ru>
 *==============================================================================
 * Конфигурация портов настраивается в gpio.h
 *                                  ЦНИИ СЭТ
 *==============================================================================
 */

//-- Includes ------------------------------------------------------------------
#include "gpio.h"

//-- Defines -------------------------------------------------------------------

//-- Peripheral init functions -------------------------------------------------
void gpio_init(void)
{
  RCU_AHBClkCmd(RCU_AHBClk_GPIOA, ENABLE);
  RCU_AHBRstCmd(RCU_AHBRst_GPIOA, ENABLE);
  
  /* Сброс пинов */
  GPIO_DeInit(GPIOA);
  GPIO_DeInit(GPIOB);
  
  // Инициализируем порт A
  for (int i = 0; i < sizeof(gpioa_config) / sizeof(gpioa_config[0]); i++)
  {
      GPIO_Init(GPIOA, &gpioa_config[i]);
  }
  
  // Инициализируем порт B
  for (int i = 0; i < sizeof(gpiob_config) / sizeof(gpiob_config[0]); i++)
  {
      GPIO_Init(GPIOB, &gpiob_config[i]);
  }
  
  
  
  
  
  
  
  
  
//  GPIO_StructInit(&gpio_init); 
//  gpio_init.Digital = ENABLE;  
//  GPIO_Init(GPIOA, &gpio_init);
//  GPIO_Init(GPIOB, &gpio_init);
//
//  /* Инициализация выходных пинов Пуш-Пулл */
//  gpio_init.Out = ENABLE;
//  gpio_init.OutMode = GPIO_OutMode_PP;
//  
//  gpio_init.Pin = GPIO_OUT_PP_PA_PINS;
//  GPIO_Init(GPIOA, &gpio_init);
//  gpio_init.Pin = GPIO_OUT_PP_PB_PINS;
//  GPIO_Init(GPIOB, &gpio_init);
//  
//  /* Инициализация выходных пинов Открытый сток */
//  gpio_init.Out = ENABLE;
//  gpio_init.OutMode = GPIO_OutMode_OD;
//  
//  gpio_init.Pin = GPIO_OUT_OD_PA_PINS;
//  GPIO_Init(GPIOA, &gpio_init);
//  gpio_init.Pin = GPIO_OUT_OD_PB_PINS;
//  GPIO_Init(GPIOB, &gpio_init);
}
