/*-----------------------------------------------------------------
Soubor obsahuje ovládání tlačítek SW1 a SW2 na desce TWR-K60N512.
Pozn.: SW3 -> reset desky
-----------------------------------------------------------------*/
#include <MK60N512MD100.h>
#include "Buttons.h"

#define NUMBER_BUTTONS	2 //Počet použitých tlačítek
#define SW1	1			  //Definice prvního tlačítka
#define	SW2	2			  // Definice druhého tlačítka
/*-----------------------------------------------------------------
Inicializace tlačítek
-----------------------------------------------------------------*/
void Button_Init(void)
{
	SIM->SCGC5 |= SIM_SCGC5_PORTA_MASK;   
  	SIM->SCGC5 |= SIM_SCGC5_PORTE_MASK;   
	//Port Data Direction Register
	//0->input; 1->output ... GPIO musí být konfigurováno
  	PTA->PDDR &= ~(1 << 19);              	//19 => 0; PTA19 je vstup
  	PTE->PDDR &= ~(1 << 26);              	//PTE26 je vstup
	//Nastavení GPIO pro PTA19
  	PORTA->PCR[19]  = PORT_PCR_MUX(1)  |  	//GPIO
                    PORT_PCR_PS_MASK |  	//Pull up na PTA19
                    PORT_PCR_PE_MASK;
	//Nastavení GPIO pro PTE26
  	PORTE->PCR[26]  = PORT_PCR_MUX(1)  |  	//GPIO
                    PORT_PCR_PS_MASK |  	//Pull up PTE26
                    PORT_PCR_PE_MASK;
}
/*-----------------------------------------------------------------
Funkce pro zjištění stisknutého tlačítka na desce.
Funkce je volaná z příslušné části programu a vrací 
číslo představující tlačítko SW1-> 1; SW2 ->2
-----------------------------------------------------------------*/
U32 Button_GetNumber(void)
{
	U32	num=0;			//Index stisknutého tlačítka
	if (!(PTA->PDIR & (1<<19)))
	{
		num |=SW1;		//Jeli stisknuto SW1 -> do num uložit 1
	}
	if (!(PTE->PDIR & (1<<26)))
	{
		num |=SW2;		//num = 2
	}
	return(num);
}