Фиксация происходит при команде latch. Точнее, при этой команде устанавливается флаг, который запрещает обновление регистра считываемых данных значением счётчика. После чтения нужного количества байт флаг сбрасывается и этот регистр опять обновляется каждый такт. Если не давать команду latch, то может получиться так, что старший байт считается уже после изменения счётчика и он будет на 1 меньше ожидаемого. Например в момент чтения младшего байта в регистре было 0500, а в момент старшего уже 04FF, и программа получит ложное значение счётчика 0400.
- - - Добавлено - - -
По поводу того, что происходит, если в режиме двух байт после команды latch будет считан только один байт, а затем снова будет дана команда latch, тестов не проводилось. На мой взгляд, вторая команда latch ничего не даст, и считается предыдущее значение.





Ответить с цитированием