// TI File $Revision: /main/2 $
// Checkin $Date: April 29, 2005   11:10:14 $
//###########################################################################
//
// FILE:	DSP281x_Gpio.c
//
// TITLE:	DSP281x General Purpose I/O Initialization & Support Functions.
//
//###########################################################################
// $TI Release:$
// $Release Date:$
//###########################################################################

#include "DSP281x_Device.h"     // DSP281x Headerfile Include File
#include "DSP281x_Examples.h"   // DSP281x Examples Include File

//---------------------------------------------------------------------------
// InitGpio: 
//---------------------------------------------------------------------------
// This function initializes the Gpio to a known state.
void InitGpio(void)
{
	EALLOW;
	GpioMuxRegs.GPAMUX.all = 0x0000;   // Все ножки как I/O
	GpioMuxRegs.GPBMUX.all = 0x0000;   // Все ножки как I/O
	GpioMuxRegs.GPDMUX.all = 0x0000;   // Все ножки как I/O
	GpioMuxRegs.GPEMUX.all = 0x0000;   // Все ножки как I/O
	GpioMuxRegs.GPFMUX.all = 0x0000;   // Все ножки как I/O
	GpioMuxRegs.GPGMUX.all = 0x0000;   // Все ножки как I/O

	GpioMuxRegs.GPADIR.all = 0x0000;   // Все ножки как входа
	GpioMuxRegs.GPBDIR.all = 0x0000;   // Все ножки как входа
	GpioMuxRegs.GPDDIR.all = 0x0000;   // Все ножки как входа
	GpioMuxRegs.GPEDIR.all = 0x0000;   // Все ножки как входа
	GpioMuxRegs.GPFDIR.all = 0x0000;   // Все ножки как входа
	GpioMuxRegs.GPGDIR.all = 0x0000;   // Все ножки как входа

	GpioMuxRegs.GPAQUAL.all = 0x00FF;  // Квалификация всех входов 17 мкс
	GpioMuxRegs.GPBQUAL.all = 0x00FF;  // Квалификация всех входов 17 мкс
	GpioMuxRegs.GPDQUAL.all = 0x00FF;  // Квалификация всех входов 17 мкс
	GpioMuxRegs.GPEQUAL.all = 0x00FF;  // Квалификация всех входов 17 мкс

	// Управление Flash и Real Time Clock

    Sel0Init();
    Sel1Init();
    ResetFlashInit();

  	Sel0On();
  	Sel1On();
  	ResetFlashOn();

  	// Управление светодиодами

  	LedCpuWorkInit();
  	LedECanDataRxInit();
  	LedECanDataTxInit();

    LedCpuWorkOff();
    LedECanDataRxOff();
    LedECanDataTxOff();

    Led_RS485Tx_Init();
    Led_RS485Tx_Val = 0;

    Led_RS485Rx_Init();
	Led_RS485Rx_Val = 0;

    UserLed1_Init();
    UserLed1_Val = 0;

	UserLed2_Init();
	UserLed2_Val = 0;

	UserLed3_Init();
	UserLed3_Val = 0;

	// Дискретные входы

	In0Init();
	In1Init();
	In2Init();
	In3Init();
	In4Init();
	In5Init();
	In6Init();
	In7Init();


	GpioMuxRegs.GPBDIR.bit.GPIOB11 	= 1;
  	GpioDataRegs.GPBDAT.bit.GPIOB11 = 1;

	// Дискретные выходы

	Out0Init();
	Out0Off();

	Out1Init();
	Out1Off();

	Out2Init();
	Out2Off();

	Out3Init();
	Out3Off();

	Out4Init();
	Out4Off();

	Out5Init();
	Out5Off();

	Out6Init();
	Out6Off();

	Out7Init();
	Out7Off();

	// Управление RS485

    RS485ReInit();  // Пин разрешения приема по RS485
    RS485DeInit();  // Пин разрешения передачи по RS485

    RS485ReOff();   // Режим Rx
    RS485DeOff();

	EDIS;
}

//===========================================================================
// No more.
//===========================================================================
