#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <stdio.h> 
#include "serial.h"
#include "acc_mma7455_avr.h"

FILE mystdout = FDEV_SETUP_STREAM(sendchar, NULL, _FDEV_SETUP_WRITE); 

int main(void)
{
   int c;

   //inicializacia akcelerometra  MMA7455
   uint8_t res;   

   res=MMA7455Init(MMA7455_RANGE_2G);// nastavenie citlivosti akcelerometra

   if(res==0)
   {
     //Error!


   	inituart();	               // Inicializacia seriovej linky
	stdout = &mystdout;
	printf("chyba");
 	_delay_ms(300);
 
      while(1){}
   }


    while(1)
    {
      //cakaj kym data budu pripravene
      while(MMA7455IsDataReady()==0){}


      //meranie   
        int8_t x,y,z;

      x=MMA7455GetX();
      y=MMA7455GetY();
      z=MMA7455GetZ();

		inituart();	               // Inicializacia seriovej linky
 		stdout = &mystdout;
	   printf(" \ngravitacne sily v jednotlivych osiach\n");
		printf(" \n");
 		printf(" x= %d\n",x);
		printf(" z= %d\n",z);
		printf(" y= %d\n",y);
		printf(" \n"); 	
		// definovanie hran(stran) hracej kocky a vypis prislusneho cisla
		if (z>60 && z<68)
		{
			c=2;
        	printf(" Hodil si: %d\n",c);
		}

    	if (z<-60 && z>-68)
		{
			c=5;
        	printf(" Hodil si: %d\n",c);
		}

		if (x>60 && x<68)
		{
			c=1;
        	printf(" Hodil si: %d\n",c);
		}

    	if (x<-60 && x>-68)
		{
			c=6;
        	printf(" Hodil si: %d\n",c);
		}

		if (y>60 && y<68)
		{
			c=4;
        	printf(" Hodil si: %d\n",c);
		}

    	if (y<-60 && y>-68)
		{
			c=3;
        	printf(" Hodil si: %d\n",c);
		}
		 	
 	

	 _delay_ms(20000);
    }		
}
