//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 hodnota; //  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);

 
}


void loop() {
  hodnota = gethodnota(); //načtení hodnoty
  Serial.println(hodnota); //vypsání na sériový port

  delay(100); //zpoždění 0,1 sekundy
}


uint16_t gethodnota() {   // nacteni hodnoty pomoci knihovny Wire.h
  
  uint16_t vysledek; //interní proměnná pro měření 16bit proměnná

  Wire.beginTransmission(PAC1934_ADDRESS); //zahájení komunikace s PAC na požadované adrese
  Wire.write(0xFF); //odeslání příkazu k měření ( adresa registru "revison register ID")- vypis FF => 3
  Wire.endTransmission(); //ukončení komunikace

  Wire.requestFrom(PAC1934_ADDRESS, 2); //požadavek na dva bajty od zařízení s adresou PAC1934_ADDRESS 0x10 
 /*
  uint32_t timeout = millis() + 180; //proměnná pro timeout - max. 180 ms
  while (Wire.available() < 2) {
    //dokud nejsou přijata data opakuj
    if ((millis() - timeout) > 0) {
      //pokud vypršel časový limit ukonči funkci a vrať číslo 0
      return 0;
    }
  }
*/
  vysledek = Wire.read(); //přečtení dat (horní bajt)
 // vysledek <<= 8; //bitový posun o 8 bitů vlevo
 // vysledek += Wire.read(); //přičtení dat (dolní bajt)


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


  
