#include <msp430x16x.h>
#include <stdio.h>
#include "display.h"
#include "initosc.h"
#include "tic.h"
#include "button_matrix.h"


unsigned int TIC_CLK = 0;                   // cuenta los tics.
unsigned char BUT_CLK;

void Init_TimerA (void)
{
    TACTL = TASSEL_1 | ID_3 | TAIE;         // ACLK | 1/8 | Interrupt enabled
    TACCR0 = (int)((32768 / TIC_1SEG)/8)-1;
    TAR = 0;
    TACTL |= MC_1;                          // UP Mode (count till TACCR0)
}

void tic (void)
{
    if (++TIC_CLK == TIC_1SEG)              // intervalo equivale a 1 [s]?
    {
        TIC_CLK = 0;
        // SWclk();                         // incrementa SoftWareClock en 1 segundo
    }

    if (++BUT_CLK == TIC_1SEG / 100)        // comprueba buttons cada 10[ms]
    {
        BUT_CLK = 0;
        Tec_Matrix();
    }
}

#pragma vector = TIMERA1_VECTOR 
__interrupt void timerA1_interrupt(void)
{
    switch (TAIV)
    {
    case 0x0A:    // generado por TAIFG?
        tic();
        break;
    }
}
