Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств

268 Микроконтроллеры AVR от азов программирования... register int gamma @10; // Определение регистровой // переменной gamma с конкретным // указанием регистра (R10), // где она должна храниться Второй тип памяти, где могут храниться переменные, — это энерго ­ независимая память данных (EEPROM). Для размещения переменных в этой памяти используется директива eeprom. Причем в EEPROM могут храниться как переменные, так и массивы. Команда описания в этом слу ­ чае будет выглядеть следующим образом: eeprom eeprom char beta; // // eeprom long arrayl [5]; // // char Определение переменной beta с размещением в EEPROM Определение массива arrayl в EEPROM string [] ="Hello" // Определение // текстового массива При размещении массива в EEPROM необходимо учитывать, что ука ­ затель массива всегда должен иметь не менее 16 битов. То есть иметь тип int либо unsigned int. Еще один тип памяти, где могут храниться данные, — это программ ­ ная память. Но в этом случае мы уже не сможем в программе изменять значения переменных и элементов массива. Эти значения определяются один раз и только при инициализации. Для указания того факта, что мас ­ сив или переменная должны храниться в программной памяти, исполь ­ зуется директива flesh. В качестве примера описания массива в программной памяти обра ­ тимся к строке 2 нашей программы (листинг 5.16). Массив или пере ­ менная с индексом flesh могут быть только глобальными. Поэтому их описание всегда располагается в начале программы перед описанием всех функций. Описание программы (листинг 5.16) Программа содержит только одну главную функцию main. Перед началом этой функции происходит определение и инициализация мас ­ сива (строка 2). Этот массив предназначен для хранения коэффициентов деления и является аналогом таблицы коэффициентов деления в про ­ грамме на Ассемблере. При инициализации элементам массива присваиваются уже знакомые нам значения. Те же значения мы помещали в таблицу коэффициентов. Главная функция main программы занимает строки 4 — 21. В строках 4 и 5 создаются две переменные:

RkJQdWJsaXNoZXIy MTExODQxMg==