Czytam sobie o tym w BB i natrafiłem na pewny problem:
Kod:
#define QDEL _delay_loop(1)
#define HDEL _delay_loop(2)
Nie do końca rozumiem, skąd się to wzięło i dlaczego jest to nazwane dla 1/4 bita i 1/2 bita. Przykład jest robiony pod 8MHz, I2C działa z max. prędkością 400kHz. Dobranie opóźnień prawdopodobnie ma związek właśnie z częstotliwością pracy I2C. W tym przypadku opóźnienie o 1/4 bita - 3 cykle procesora daje w wyniku 375ns a 1/2 - 6 cykli 750ns. Z tego wynika, że bit ma 12cykli czyli 2,25us czyli 444,444kHz. Coś się nie zgadza, zwłaszcza że są to tylko opóźnienia. Trochę namieszałem, ale mam nadzieję, że wiecie o co chodzi. Po prostu nie wiem jak się ma to 1/2 i 1/4 bita do pracy I2C.