сдвиговый регистр (74hc595) и рис в ccs - PullRequest
0 голосов
/ 22 мая 2018

Когда я записываю 8 бит в регистр сдвига hc595, с последним битом i2c переходят к Q0 во втором hc595.

Почему?

Схема:

enter image description here

Мой код:

i2c_write(0b10101010);

latch_led_sensors_out();

delay_ms(200);

1 Ответ

0 голосов
/ 23 мая 2018

Это из-за протокола I2C.Даже если вы хотите отправить 8 битов, вы действительно отправляете 9. Работа I2C заключается в том, что начальный кадр содержит 7 (или 10) бит адреса, плюс один бит для чтения / записи.После того, как эти начальные 8 бит заблокированы, мастер отправляет дополнительный тактовый импульс для считывания в бит ACK / NACK от подчиненного устройства.Помните, что главный управляет часами, даже когда ведомый управляет выводом данных.

...