//For AKCE
//ADRESA pro èteni 0x39
//pro zápis 0x38



#include "C:\Users\Honza\Documents\pic\I2C_akcelerometr\main.h"
#define EEPROM_SDA  PIN_C4
#define EEPROM_SCL  PIN_C3
#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)
#use rs232(baud=9600,parity=N,xmit=PIN_C7,rcv=PIN_C6,bits=8) //rcv TXD xmit RXD
#include <math.h>

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard

printf("Simple Thermomether  \r\n",);

int16 data1, data2, data3;
signed int16 X, Y, Z;
float a, b;

unsigned int8 XL,XH,YL,YH,ZL,ZH;


 i2c_start();
   I2C_Write(0x38);
   I2C_write(0x2A);

   I2C_write(0x01);
 
   i2c_stop(); 


  
  while(TRUE)
 { 

data1=0;
data2=0 ;


//akcelerometr
   int1 ack;
   i2c_start();            // If the write command is acknowledged,
   ack = i2c_write(0x39);//hen the device is ready.
   i2c_stop();
  ack=!ack;
   
   
   
   i2c_stop();

   i2c_start();
   I2C_Write(0x38);
   I2C_write(0x01);
// i2c_stop();
   i2c_start();
   I2C_Write(0x39);
 XH=i2c_read(0);
   i2c_stop(); 

i2c_start();
   I2C_Write(0x38);
   I2C_write(0x02);
// i2c_stop();
   i2c_start();
   I2C_Write(0x39);
   XL=i2c_read(0);
   i2c_stop(); 
   
i2c_start();
   I2C_Write(0x38);
   I2C_write(0x03);
// i2c_stop();
   i2c_start();
   I2C_Write(0x39);
   YH=i2c_read(0);
   i2c_stop();  
   
i2c_start();
   I2C_Write(0x38);
   I2C_write(0x04);
// i2c_stop();
   i2c_start();
   I2C_Write(0x39);
   YL=i2c_read(0);
   i2c_stop();  
   
i2c_start();
   I2C_Write(0x38);
   I2C_write(0x05);
// i2c_stop();
   i2c_start();
   I2C_Write(0x39);
   ZH=i2c_read(0);
   i2c_stop();  
   
i2c_start();
   I2C_Write(0x38);
   I2C_write(0x06);
// i2c_stop();
   i2c_start();
   I2C_Write(0x39);
   ZL=i2c_read(0);
   i2c_stop();     
   
 i2c_start();
   I2C_Write(0x38);
   I2C_write(0x00);
// i2c_stop();
   i2c_start();
   I2C_Write(0x39);
   ZL=i2c_read(0);
   i2c_stop();    
   
 printf("Stav: %ud(procenta)\r\n", XL); 
   printf("Stav: %ud(procenta)\r\n", XH);
   printf("Stav: %ud(procenta)\r\n", YL);
   printf("Stav: %ud(procenta)\r\n", YH);
    printf("Stav: %ud(procenta)\r\n", ZL);
    printf("Stav: %ud(procenta)\r\n", ZH);
   
   
X = (((unsigned int16) XH << 8) + XL );
Y = (((unsigned int16) YH << 8) + YL);
Z = (((unsigned int16) ZH << 8) + ZL);

X=X/4;
Y=Y/4;
Z=Z/4;
//X = X>>2;
//Y = Y>>2;
//Z = Z>>2;



printf("Stav: %d (procenta)\r\n", ack);

printf("Stavx: %Ld(procenta)\r\n", X);
printf("Stavy: %Ld(procenta)\r\n", Y);
printf("Stavz: %Ld(procenta)\r\n", Z);



a=(float)Y/Z;
printf("y/z %10.2f \r\n", a);
b=atan(a);
printf("atan %10.2f \r\n", b);
b = (b/3.14)*180;
b=abs(b);
b=90-b;
printf("uhel %10.2f \r\n", b);

delay_ms (2000);

 } 
}