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

Глава 10. Использование EEPROM 285 Процедура записи коэффициентов по умолчанию, обозначенная как ZapisК, может быть вставлена в любом месте программы (листинг 1 0 . 5) . ZapisK : ; запись предварительных коэффициентов по умолчанию clr ZH ; с нулевого адреса в EEPROM clr ZL ; КО ldi temp , High ( KO ) ; ст rcall WriteEEP inc ZL ldi temp , Low ( KO ) ;мл rcall WriteEEP inc ZL ; Кl ldi temp , High ( Kl ) ; ст rcall WriteEEP inc ZL ldi temp , Low ( Kl ) ;мл rcal l WriteEEP inc ZL ldi ZL , $ 1 0 ldi temp , $AA ; все O k , записываем rcall WriteEEP ; контрольный байт ret Манипулируя значением контрольного байта, можно даже определить, предвари­ тельные у нас коэффициенты записаны или уже окончательные после калибровки, если вдруг возникает такая задача. Кроме записи констант, наиболее часто EEPROM служит для хранения, например, заводского номера и названия прибора, фамилии конструктора или программиста, названия фирмы-изготовителя и всякой другой полезной информации (сравните с данными, которые извлекает операционная система ПК при подсоединении, на­ пример, через USB, устройства plug&play, в спецификациях которого наличие энергонезависимой памяти небольшого объема специально предусмотрено). Мож­ но заполнять поле серийного номера и вести базу выпущенных экземпляров. Записывать все эти данные при начальной загрузке не всегда удобно. Кроме того, не забудем, что у нас осталась задача замены калибровочных констант после про­ ведения калибровки. Во всех этих случаях данные для записи нужно получать извне (например, через последовательный порт UART) и записывать по мере их поступления. Напомним, что запись в EEPROM может протекать медленнее, чем получение данных через UART, поэтому правильная организация такой процедуры предусматривает буферизацию: полученные данные сначала всем массивом запи­ сываются в SRAМ, а потом переносятся в EEPROM.

RkJQdWJsaXNoZXIy MTExODQxMg==