Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру

358 Часть 111. Практическое программирование микроконтроллеров АVR это примерно по 1 00 мкс плюс необходимые операции в начале, итого где-то 1 миллисекунда на 7 байтов данных. Само выполнение команд добавляет к дли­ тельности совсем немного. В рассматриваемом случае время дополнительно за­ тягивается необходимостью посылки через UARТ каждого следующего байта, который может быть послан не ранее окончания передачи предыдущего. При ско­ рости 9600 это добавляет примерно по миллисекунде на каждое значение, кроме последнего, т. е. общая длительность составит примерно 7 мс. Но UART - не показатель, тем более что его легко ускорить в несколько раз (см. главу 15), а в ос­ тальных случаях такая длительность чтения вполне приемлема - она даже не со­ бьет динамическую индикацию так, чтобы было заметно для глаза. То есть у нас все готово для построения вполне достойных настольных часов. В главе 15, как мы уже говорили, будет показано, как устанавливать часы через по­ следовательный порт. Из вариантов индикации у нас пока только обычная динами­ ческая (см . главу 9), которая при всех ее неудобствах позволяет зато использовать семисегментные цифры любого желаемого размера. В главе 16 мы покажем, как для той же цели использовать готовый 4-разрядный семисегментный светодиодный ин­ дикатор, а также рассмотрим вывод значений часов и других величин на строчные (знакосинтезирующие) индикаторы. Использовать для этой цели описываемый да­ лее дисплей MT- l OT l 1 можно только в каких-то сугубо утилитарных целях, т. к. в нем невозможно вывести разделительное двоеточие. Особенности записи и чтения внешней памяти с 12С-интерфейсом Энергонезависимая память типа АТ24Сххх с 1 2 С-интерфейсом имеет структуру на­ стоящей EEPROM т. е. с индивидуальной адресацией каждого байта. Потому про­ цедуры обращения с этой памятью существенно отличаются от обычной flash � памяти, которую мы рассматривали в предыдущей главе. Последнее число в обо­ значении микросхемы означает объем памяти в килобитах - например, АТ24С256 имеет емкость 256 кбит или 32 768 байтовых ячеек (32 кбайт) . Объем памяти в 32 кбайт кажется смешным в сравнении с современными разновидностями flаsh­ памяти, которые достигают гигабайтных объемов, но для наших целей, как вы уви­ дите, этого будет достаточно. Максимальная емкость памяти серии АТ24 составля­ ет 1 Мбит ( 1 28 кбайт), но удобно применять кристаллы от 2 до 5 1 2 кбит включи­ тельно, т. к. они имеют двухбайтовую адресацию и не требуют лишней траты вре­ мени на посылку еще одной составляющей адреса. Память принципиально больших объемов с интерфейсом I 2 c не выпускают - слишком он медленный. Заметим, что современные типы АТ24 (с буквой «С» и выше) допускают скорость обмена по I 2 c до 1 МГц при питании 2,7+5 В и 400 кГц при питании 1 ,7 В. В режиме записи это не имеет особого значения : как и положе­ но энергонезависимой памяти, процедура записи медленная, и сигнал АСК после посылки очередного байта следует ожидать не ранее, чем через 5 мс, т. е. общая скорость записи ограничена величиной примерно 200 байт/с, и быстродействие ин­ терфейса перестает играть тут решающую роль. Иное дело при чтении - в режиме

RkJQdWJsaXNoZXIy MTExODQxMg==