Teplotní senzor LM92-jak přistupovat a zapisovat do registru

Děkuji za pomoc! Díky ní jsem se pokusil napsat program, který by měl teplotu ze senzoru číst, bohužel se tak neděje. Nevěděli byste prosím, v čem je chyba? Nevím, jestli jsem správně pochopil funkci “acků”, ale chyba může být zřejmě kdekoliv (kompilace proběhla v pořádku).

Snímač jsem zapojil tak, že piny SDA a SCL jsou na pinu 0 a 1 portu 1. Připojil jsem je tam přímo.
Adresové piny A0 a A1 jsem připojil na zem, stejně tak pin GND. Napájecí pin jsem připojil na zdroj 3,3V, rovněž přímo. Ostatní piny snímače jsem nikam nepřipojoval.
Pracuji s vývojovou deskou Smart RF04EB s procesorem CC2430 od Texas Instrument. Piny senzoru jsem tedy spojil s jednotlivými piny na vývojové desce.

[code]
void main(void)
{
P1SEL=0x0; // Nastavení portu 1 na I/O
halBoardInit(); // Inicializace hodin atd.

i2c_init();
i2c_start();
i2c_address(); // Zaslání prvního bytu s adresou snímače
i2c_ack0(); //Ack (SDA=0)
i2c_byteH(); // Načtení prvního bytu a uložení do pole
i2c_ack0(); //Ack (SDA=0)
i2c_byteL(); // Načtení druhého bytu a uložení do pole
i2c_ack1(); //Ack (SDA=1)
i2c_stop();
}

void i2c_delay(void) // Funkce pro zpoždení 0,3ms, 0,3ms jsem zvolil podle datasheetu, //kde je rozmezí této pauzi do 0,5ms
{halMcuWaitUs(300);}

void i2c_init(void) // Inicializace SDA a SCL na 1
{
P1DIR=0x3; //Nastavení pinů portu 1 na output
SCL=1;
i2c_delay();
SDA=1;
i2c_delay();
}

void i2c_start(void) //Start bit
{
SDA=1;
i2c_delay();
SCL=1;
i2c_delay();
SDA=0;
i2c_delay();
SCL=0;
i2c_delay();
}

void i2c_stop(void) //Stop bit
{
SDA=0;
i2c_delay();
SCL=1;
i2c_delay();
SDA=1;
i2c_delay();
}

void i2c_clock(void) // Jeden impulz hodin
{
SCL=1;
i2c_delay();
SCL=0;
i2c_delay();
}

void i2c_address(void) // Zaslání adresového bytu
{
SDA=1;
i2c_clock();
SDA=0;
i2c_clock();
SDA=0;
i2c_clock();
SDA=1;
i2c_clock();
SDA=0;
i2c_clock();
SDA=0; //Adresa A1 (spojena se zemí)
i2c_clock();
SDA=1; //Adresa A2 (spojena se zemí)
i2c_clock();
SDA=0; //R/W nastaveno na 0,tedy read
i2c_clock();
}

void i2c_ack0(void) // Ack 0
{
SDA=0;
i2c_clock();
}

void i2c_ack1(void) // Ack 1
{
SDA=1;
i2c_clock();
}

void i2c_byteH(void) // Přečtení a nahrátí prvního bytu do pole
{
P1DIR=0x0; //Nastavení pinù na input
int j=0;
while(j!=8)
{
a_i2c_byteH[j]=SDA;
i2c_clock();
j++;
}
}

void i2c_byteL(void) // Přečtení a nahrátí druhého bytu do pole
{
int j=0;
while(j!=8)
{
a_i2c_byteL[j]=SDA;
i2c_clock();
j++;
}
}[/code]