Dziękuję, że się zainteresowałeś tematem.
Wkleiłem tylko część kody bez inicjalizacji. Ogólnie cała napisana biblioteka działa z innymi urządzeniami takimi jak np. akcelerometr. Głównym autorem tego rozwiązania jest Autor
Blue Book-a. Nie dodałem, że
HDEL jest równe
_delay_loop_1(3) przy taktowaniu procesora 11,059200 MHz.
- Dlaczego
"if ( 0x91 & i ) I2C_SDA_HI;"? ->
0x91 to adres do odczytu tego urządzenia a
i jest maskowaniem kolejnych bitów. Czyli jeśli z maskowania danego bitu otrzymamy
1 to ustawiamy linię
SDA w stan wysoki.
- Obawiam się że problem leży w hardware-rze
![Smutny :(](https://forum.atnel.pl/images/smilies/icon_e_sad.gif)
Ale nie zaszkodzi się upewnić czy program jest dobry ponieważ tu jest kosmetyczna różnica w komunikacji w porównaniu z innymi urządzeniami działającymi z wykorzystaniem
I2C- Przed napisaniem tego postu włączył lutownicę, żeby sprawdzić jeszcze raz połączenia lutowane pomiędzy płytką a układem. Przed skończeniem pisania poprawiłem luty i
WSZYSTKO DZIAŁA!!!!!!!!. Po prostu była jedna z nóżek od komunikacji źle przylutowana.
Pozdrawiam