НАЦІОНАЛЬНИЙ АВІАЦІЙНИЙ УНІВЕРСИТЕТ Факультет кібербезпеки, комп’ютерної та програмної інженерії Кафедра засобів захисту інформації З ДИСЦИПЛІНИ «Проектування технічних систем на основі Arduino» Модульний контроль №1 Питання: 1. Поясніть призначення та роботу стеку. 2. Призначення схеми формування сигналу ініціалізації AVR контролера. 3. Наведіть порівняння процедури ініціалізації в Arduino на мовах програмування - С та асемблері. Галанд Ярослав Дмитрович 2 курс, група 283 Київ 2021 Відповіді: 1. Стек – це набір регістрів мікропроцесора або елементів оперативної пам’яті, звідки дані або адреси вибираються «зверху» за принципом: перший – що поступив останнім. При записі в стек чергового слова всі раніше записані слова зміщуються на один регістр вниз. При вибірці слова із стека, слова, що залишилися, переміщаються вгору на один регістр. Вказані процедури ілюструє рис. 2. Тут стек складається з семи регістрів. Якщо в стек завантажується яке-небудь слово, наприклад А5, то воно записується у верхньому регістрі, а кожне із слів А1...А4 переміщається в сусідні нижні регістри. Якщо ж А5 витягується із стека, то кожне із слів А1..А4 переміщається в сусідні верхні регістри. Не можна витягнути А4 раніше А5, тобто автоматично реалізується відмічений вище принцип. Стек звичайно використовується в мікропроцесорах для зберігання адрес повернення при зверненні до підпрограм, а також для запам'ятовування стану внутрішніх регістрів при обробці переривань. Рис. 1.1 - процедури роботи стека. При організації стека в пам'яті, час на звернення до нього буде дорівнювати циклу звернення до пам'яті. Ця операція виконується значно швидше, якщо стек у вигляді набору регістрів входить до складу мікропроцесора. Важливим параметром у такому разі є число регістрів стека. При спробі записати в стек більшої кількості слів, чим число його регістрів, перше слово буде втрачено. У деяких мікропроцесорах при переповнюванні регістрів стека відповідні слова записуються в стек пам'яті. 2. Схема формування сигналу ініціалізації (RESET) Відразу після виходу зі стану ініціалізації МК виконує наступні дії: - запускає генератор синхронізації МК. Для стабілізації частоти тактування внутрішніми засобами формується затримка часу; - завантажує в лічильник команд адресу початку робочої програми; - проводить вибірку першої команди з пам'яті програм і приступає до виконання програми. У ATMega328 лінія RESET є двонапрямленою і має низький активний рівень. При натисканні кнопки ініціалізації або увімкненні живлення буфер лінії встановлюється в режим вводу і реалізує так звану зовнішню ініціалізацію. МК може перейти в стан ініціалізації також за сигналами пристроїв контролю стану, які є в складі контролера. У цьому випадку говорять, що МК знаходиться в стані внутрішньої ініціалізації. Рис. 2.1 - типові схеми формування сигналу зовнішньої ініціалізації. 3. Ініціалізація порту вводу-виводу На Ардуіно: pinMode (pin, mode) Параметри pin: номер виводу, режим роботи якого задається. mode: приймає значення INPUT, OUTPUT або INPUT_PULLUP Значення, що повертаються - немає digitalWrite (pin, value) Параметри pin: номер виводу value: значення HIGH або LOW Значення, що повертаються - немає digitalRead (pin) Параметри pin: номер цифрового виводу, з якого необхідно вважати значення (int) Значення, що повертаються HIGH або LOW