//import knihovny pro komunikaci I2C
#include <Wire.h>

#define PAC1934_ADDRESS 0x10                //adresa zařízení zjisteni z datasheetu a nebo pomoci programu "zjisteni I2C"

uint16_t hodnota1;                           //  neznamenkovy 16-bit integer

void setup() {
  //Inicializace knihovny
  //Pokud se zadá s parametrem, je zařízení přidělena adresa
  Wire.begin();

  //komunikace po sériovém portu
  Serial.begin(9600);
  int i = 1;
}


void loop() {
  // nemelo by vypsat nic
  hodnota1 = gethodnota1();                  //načtení hodnoty
  Serial.println(hodnota1, BIN);            //vypsání na sériový port v binarnim tvaru
  delay(100);                               //zpoždění 0,1 sekundy

  // Zahajeni zapis na adresu 1C (NEG_PWR)   
  Wire.beginTransmission(PAC1934_ADDRESS);  //zahájení komunikace s PAC na požadovane adrese
  Wire.write(0x1C);                         //(Register ADDRESS 1CH) (otevru registr)
  Wire.write(0x32);                         //zapis do registru      (zapsani hodnoty- nastaveni registru)
  Wire.endTransmission();                   //ukončení komunikace


  

  // uz by mela byt v registru hodnota
  hodnota1 = gethodnota1();                  //načtení hodnoty
  Serial.println(hodnota1, BIN);             //vypsání na sériový port
  delay(100);                                //zpoždění 0,1 sekundy



}

//-------------------------------------------FUNKCE1------------------------------------------------------------

uint16_t gethodnota1() {                     // nacteni hodnoty pomoci knihovny Wire.h

  uint16_t vysledek1;                        //interní proměnná pro měření 16bit proměnná

  Wire.beginTransmission(PAC1934_ADDRESS);  //zahájení komunikace s PAC na požadované adrese
  Wire.write(0xFD);                         //odeslání příkazu k měření ( adresa registru "revison register ID")
  Wire.endTransmission();                   //ukončení komunikace - automaticky posle read bit

  Wire.requestFrom(PAC1934_ADDRESS, 2);     //požadavek na dva bajty od zařízení s adresou PAC1934_ADDRESS 0x10
  
 
  vysledek1 = Wire.read();                   //přečtení dat (horní bajt)
  // vysledek <<= 8; //bitový posun o 8 bitů vlevo- potreba pro 16-bit
  // vysledek += Wire.read(); //přičtení dat (dolní bajt)


  return vysledek1;                          //navrácení výsledku
}
