Научная статья на тему 'ОПЫТ ИЗУЧЕНИЯ МИКРОКОНТРОЛЛЕРОВ СРЕДСТВАМИ АССЕМБЛЕРА В ИНЖЕНЕРНОМ ОБРАЗОВАНИИ'

ОПЫТ ИЗУЧЕНИЯ МИКРОКОНТРОЛЛЕРОВ СРЕДСТВАМИ АССЕМБЛЕРА В ИНЖЕНЕРНОМ ОБРАЗОВАНИИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
275
42
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
EMBEDDED SYSTEMS / CYBER-PHYSICAL APPROACH / HARDWARE-SOFTWARE LEARNING TOLS / ARDUINO / INTEGRATED DEVELOPMENT ENVIRONMENT / ALGORITHM / PROGRAM / COGNITIVE PRINCIPLES / ВСТРАИВАЕМЫЕ СИСТЕМЫ УПРАВЛЕНИЯ / КИБЕР-ФИЗИЧЕСКИЙ ПОДХОД / АППАРАТНО-ПРОГРАММНАЯ СИСТЕМА ПОДДЕРЖКИ УЧЕБНЫХ ДЕЙСТВИЙ / ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ / АЛГОРИТМ / ПРОГРАММА / КОГНИТИВНЫЕ ПРИНЦИПЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Вахтина Елена Артуровна, Вострухин Александр Витальевич

В статье раскрываются дидактические возможности аппаратно-программной (инструментальной) системы поддержки учебных действий студентов технических факультетов при изучении микроконтроллеров - платформы проектирования встраиваемых систем управления. Приведен классический пример программирования генератора прямоугольных импульсов на контроллере Arduino в интегрированной среде разработки AVR Studio на языке Ассемблера. Проанализированы возникающие в процессе выполнения задания связи между теоретическими знаниями и практическими навыками, дающие синергетический эффект развитию практико-ориентированной когнитивной технологии в инженерном образовании.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

EXPERIENCE OF STUDYING MICROCONTROLLERS BY THE ASSEMBLER MEANS IN ENGINEERING EDUCATION 86

The didactic capabilities of the hardware-software (instrumental) system for supporting educational actions of students of technical faculties in the study of microcontrollers - the design platform for embedded control systems are reveals in the paper. A classic example of programming a rectangular pulse generator on an Arduino controller in AVR Studio integrated development environment (IDE) in Assembly language is given. The relationships between theoretical knowledge and practical skills arising in the process of the task performing, giving a synergistic effect to the development of practice-oriented cognitive technology in engineering education are analyzed.

Текст научной работы на тему «ОПЫТ ИЗУЧЕНИЯ МИКРОКОНТРОЛЛЕРОВ СРЕДСТВАМИ АССЕМБЛЕРА В ИНЖЕНЕРНОМ ОБРАЗОВАНИИ»

Е.А. Вахтина, А.В. Вострухин

ОПЫТ ИЗУЧЕНИЯ МИКРОКОНТРОЛЛЕРОВ СРЕДСТВАМИ АССЕМБЛЕРА В ИНЖЕНЕРНОМ ОБРАЗОВАНИИ

Ключевые слова: встраиваемые системы управления, кибер-физический подход, аппаратно-программная система поддержки учебных действий, Arduino, интегрированная среда разработки, алгоритм, программа, когнитивные принципы.

Аннотация: В статье раскрываются дидактические возможности аппаратно-программной (инструментальной) системы поддержки учебных действий студентов технических факультетов при изучении микроконтроллеров - платформы проектирования встраиваемых систем управления. Приведен классический пример программирования генератора прямоугольных импульсов на контроллере Arduino в интегрированной среде разработки AVR Studio на языке Ассемблера. Проанализированы возникающие в процессе выполнения задания связи между теоретическими знаниями и практическими навыками, дающие синергетический эффект развитию практико-ориентированной когнитивной технологии в инженерном образовании.

Совершенствование вычислительных систем реального времени (встраиваемых систем управления Embedded Systems) является приоритетным направлением развития мировой науки, техники и технологий. Для того чтобы выпускники инженерных факультетов смогли быть причастными к этой тенденции на конкретных производствах, им необходимо в процессе обучения в вузе овладеть программированием систем реального времени. Специалисты выделяет 8 проектных платформ встраиваемых систем, которые «определяют практически весь маршрут проектирования и разработки» [1]. Для электронных изделий малой и средней серийности проектной платформой служат микроконтроллеры (MCU). Микроконтроллеры - это миниатюрные компьютеры, реализующие основные функции классических вычислительных систем: сбор, обработку, хранение и передачу данных, а также формирование управляющих сигналов. Область применения микроконтроллеров шире, чем микропроцессоров. Они используются в системах управления, начиная от бытовой техники и заканчивая летательными аппаратами. Микроконтроллер содержит на одном полупроводниковом кристалле почти все устройства цифровой электроники, начиная от логических элементов и заканчивая процессором.

Актуальность совершенствования методических и инструментальных средств поддержки когнитивной деятельности студентов (Learning Tools) при освоении микроконтроллеров вызвана, во-первых, «тенденцией сближения интеллектуального уровня образовательного процесса в профессиональном образовании с интеллектуальным уровнем работ в науке и современном производстве» [2]; во-вторых, необходимостью дидактико-инструментальной поддержки:

а) учебных действий студентов при изучении микроконтроллеров на уровне междисциплинарной интеграции (электроника, микропроцессорная техника, информатика, вычислительная техника, автоматические системы управления технологическими процессами и др.);

б) развития системного и алгоритмического мышления, творческого подхода в решении научно-исследовательских и прикладных задач при выполнении обучающимися бакалаврских и магистерских работ, а также конкурсных работ в области встраиваемых систем управления.

86

e^sSass профессиональное осрпзовпние: проалемы, нпинп, прпнтинп

Теоретической базой создания инструментальной системы для изучения микроконтроллеров является кибер-физический подход, обозначающий «взгляд на системы с позиций интегрирования вычислений и физических процессов» [1]. В основе такого подхода лежит «моделирование системы целиком и технологии совместного проектирования аппаратно-программного обеспечения, сетей и физических процессов» [3].

Мы предлагаем аппаратно-программную реализацию инструментальной системы, предназначенной для изучения микроконтроллеров на базе аппаратной платформы Arduino с использованием интегрированной среды разработки (integrated development environment, IDE) AVR Studio и ассемблера в качестве языка программирования.

Почему именно ассемблер? «Существует мнение, что к изучению микроконтроллеров можно подходить с позиций рассмотрения «черного ящика». Я категорически против такой модели! Можно успешно заниматься программированием компьютерной техники и не знать ни одной команды процессора, но нельзя вести разработку на основе восьмиразрядных микроконтроллеров досконально, не зная их внутреннюю структуру. Именно поэтому в самом начале необходимо создать как минимум пару-тройку проектов на ассемблере и только потом уже переходить на "Си"» [4]. На основе обобщения собственного опыта [5, 6] и опыта специалистов по программированию микроконтроллеров [1, 4, 7, 8] мы выделяем такие дидактические возможности ассемблера (по сравнению с языками высокого уровня Си и Си++):

- доступность всех элементов архитектуры микроконтроллера, что позволяет студенту, разрабатывающему программу, реализовывать наиболее эффективные алгоритмы;

- возможность генерации машинных команд и управление этим процессом со стороны разработчика;

- наглядность работы микроконтроллера, что повышает уровень понимания процессов происходящих в системе, а, следовательно, и эффективность обучения.

Таким образом, язык ассемблера предпочтителен на начальной стадии изучения микроконтроллеров.

Из предлагаемого на рынке ряда стартовых наборов для изучения микроконтроллеров мы выбрали платформу Arduino в качестве прототипа аппаратной части инструментальной системы. Ее основные достоинства по сравнению с другими стартовыми наборами кратко можно сформулировать так: простота, многофункциональность и низкая стоимость. Платформа Arduino предназначена для реализации алгоритмов реального времени, содержит обширный ассортимент модульных прошивок с открытой лицензией. Она динамически развивается, имеет собственную среду разработки и поддерживается такими системами, как Matlab, AVRStudio и Windows 10. Arduino -это самое доступное бюджетное решение, реализованное на популярных микроконтроллерах семейства AVR, которые по соотношению «цена -производительность - энергопотребление» занимают лидирующие позиции и признаны индустриальным стандартом [9].

пеппгогичесннй журнпл спшкортосгпнп м i(ao). aoi9 §®gs§jas

Рассмотрим пример задачи, которая в наибольшей степени подходит для начального этапа изучения микроконтроллеров: на базе аппаратной платформы Arduino реализовать программным способом генератор прямоугольных импульсов (в дальнейшем, просто генератор) [10]. Для разработки программы на языке Ассемблера воспользуемся профессиональной средой AVR Studio, которая распространяется свободно и всегда доступна на сайте фирмы Atmel.

На рисунке 1 представлена временная диаграмма сигнала, формируемого генератором. Период сигнала определяется выражением: TG = ti + tp, где ti и tp, соответственно, длительности импульса и паузы. Для упрощения задачи принимаем f, = tp.

Рис. 1. Временная диаграмма сигнала, формируемого генератором

микроконтроллера высокий уровень

DELAY

Алгоритм программы GENERATOR: Шаг 1: Старт.

Шаг 2: Вывести на вывод PD0 напряжения, т.е. логическую единицу (1).

Шаг 3: Сформировать временную задержку DELAY длительностью t.

Шаг 4: Вывести на вывод PD0 микроконтроллера низкий уровень напряжения, то есть логический ноль (0).

Шаг 5: Сформировать временную задержку DELAY длительностью tp и перейти к шагу 2.

Шаг 6: Стоп Правильно разработанная программа должна состоять из отдельных функционально законченных отлаженных модулей -подпрограмм. Рассмотрим подпрограмму DELAY, которая входит в состав программы GENERATOR. Алгоритм подпрограммы DELAY представлен на рисунке 2.

Возврат из DELAY

Рис. 2. Алгоритм подпрограммы DELAY

Подпрограмма, реализующая алгоритм DELAY, представлена на рисунке 3.

□ppappfi профессиональное осрпзоппние: прослемы, нпыкп, прпнтинп

DELAY: ; The time delay subroutine

LDI R16,5 ; Step 1. Load into the register R16 the constant 5 (X = 5)

m1: DEC R16 ; Step 2. Decrement the contents of register R16

BRNE m1 ; Step 3. If not zero go to m1

RET ; Exit the DELAY subroutine

Рис. 3. Подпрограмма, реализующая алгоритм DELAY.

Для отладки подпрограммы DELAY предлагаем использовать фрагмент программы, представленный на рисунке 4, имитирующий основную программу.

m2: RCALL DELAY ; Call subroutine DELAY

RJMP m2 ; Go to m2

Рис.4. Фрагмент программы, имитирующий основную программу

Подпрограмма DELAY вызывается из основной программы командой RCALL DELAY (первая строка с меткой m2). После исполнения подпрограммы DELAY управление передается в основную программу командой RET, (см. подпрограмму DELAY). Затем выполняется команда RJMP m2 - безусловный переход на метку m2 (вторая строка фрагмента отладки подпрограммы DELAY).

Для отладки подпрограммы DELAY можно выбрать значение константы Х из диапазона: 1 ... 255, где 255 десятичный эквивалент максимального двоичного кода, который можно загрузить в восьмибитный регистр микроконтроллера. В рассматриваемом случае Х=5. В среде AVR Studio, в режиме пошаговой отладки проверяем работоспособность подпрограммы DELAY. Если подпрограмма работает, то переходим к расчету временной задержки заданной длительности, то есть к расчету константы X (см. алгоритм, представленный на рис. 2).

Например, требуется разработать генератор, формирующий прямоугольный сигнал с частотой fG = 20 кГц. Для решения данной задачи необходимо рассчитать время задержки TD, которое определяется из условия TD = ti = tp. Период генератора определяется выражением: TG = 1/fG= 1/20000 = 50 мкс. Так как TG = ti + tp = 2Td, то TD = TG /2= 25 мкс.

Длительность временной задержки определяется, в основном, количеством циклов, которые должен выполнить микроконтроллер при исполнении подпрограммы DELAY. Цикл состоит из двух команд с мнемоникой DEC и BRNE (см. подпрограмму DELAY). Остальные команды с мнемоникой LDI, RET и RCALL исполняются микроконтроллером только один раз.

Микроконтроллер работает под действием генератора тактовых импульсов. Количество тактов, необходимое микроконтроллеру на выполнение различных команд можно определить из руководства по набору команд AVR [11]. Количество тактов, необходимое микроконтроллеру на выполнение команд с мнемоникой RCALL, LDI и RET определяется выражением:

Nrlr = Nrcall + Nldi +Nret (1)

где Nrcall, Nldi и Nret - количество тактов необходимое микроконтроллеру на выполнение команд с мнемоникой RCALL, LDI и RET, соответственно.

Тогда согласно выражению (1): NRLR = 3 + 1 + 4 = 8 тактов.

пеппгогичесннй журнал спшкортосгпнп м i(ao). aoi9 ssssssë

Количество циклов, необходимое микроконтроллеру на реализацию временной задержки заданной длительности определяется выражением:

X = (TD - TRLP)/rdb, (2)

где TRLR - время, необходимое микроконтроллеру на выполнение команд с мнемоникой RCALL, LDI и RET, мкс;

rDB - время, необходимое микроконтроллеру на выполнение команд с мнемоникой DEC и BRNE, т.е. одного цикла, мкс.

Время TRLR определяется из выражения:

Trlr = Te • Nrlr , (3)

где Te - период тактового генератора микроконтроллера, определяется из выражения ТС = 1/fe; fe - частота тактового генератора микроконтроллера, fe = 16 МГц согласно технического описания аппаратной части Arduino Uno (https://www .arduino.cc).

Тогда ТС = 1/1610-6 = 0,0625 мкс.

В соответствии с выражением (3) TRLR = 0,0625 8 = 0,5 мкс. Время rDB определяется выражением:

Tdb = Te •Ndb, (4)

где Ndb - количество тактов, необходимых микроконтроллеру на выполнение одного цикла, т.е. команд с мнемоникой DEC и BRNE.

В соответствие с системой команд [11] определяем NDB = 1 + 2 = 3 такта. Тогда rDB = 0,0625 3 = 0,1875мкс. Из выражения (2) определяем:

Х=(25 - 0,5)/0,1875 = 130,66 = 131 цикл Изменяем в подпрограмме DELAY первоначальное значение константы Х на полученное, т.е. Х=131 и проверяем значение времени, формируемое подпрограммой DELAY в среде AVR Studio в режиме отладки (рис. 5).

ml: RCALL DELAY ;Вызвать подпрограмму DELAY ■=£> RJMP ml ; Перейти к метке ml

DELAY: /Подпрограмма временной задержки

LDI R16,131;Загрузить в регистр R16 константу 131 m2: DEC Rib ;Декрементировать содержимое регистра R16 В1ШЕ т2 ;Если не ноль перейти к метке т2 RET ;Выйти из подпрограммы DELAY

Register

R00 = 000

R03 = 000

R06 = 000

R09 = 000

R12= 000

R15 = 000

R18= 000

R21= 000

R24= 000

R27 = 000

R30= 000

R01= 000 R04= 000 R07= 000 R10= 000 R13= 000 R16= 000 R19= 000 R22= 000 R25= 000 R28= 000 R31= 000

R02= 000 R05= 000 R08 = 000 Rll= 000 R14= 000 R17= 000 R20= 000 R23= 000 R26= 000 R29 = 000

¡Processor *

Name Value

Program Coir.. 0*000001

Slack Pointer OxOSFF

X pointer 0*0000

V pointer 0x0000

Z pointer 0*0000

Cycle Counter 400

Frequency 16 0000 MHz

Stop Watch 25.00 us

SREG ШШЕННННО

+J Registers

1

В Project Processor

Рис. 5. Окно IDE AVR Studio в режиме отладки подпрограммы DELAY

9SQ5SSS профессиональное оерпзоппние: проалемы, нпинп, прпнтинп

Если подпрограмма DELAY формирует временную задержку заданной длительности, что видно в окне Processor, строка Stop Watch 25.00 us, то переходим к разработке программы, реализующей функцию генератора в соответствие с алгоритмом, представленным выше. Отлаженная в среде AVR Studio программа GENERATOR представлена на рисунке 6.

•include"m32 8Pdef.inc";Include the name mapping files of I / O registers ;for ATmega328 microcontroller addresses ;Initialize the stack

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

;Write to the stack pointer register high byte of the RAMEND constant Write to the stack pointer register low byte of the RAMEND constant

LDI R16, high (RAMEND) OUT SPH, R16 LDI R16, low (RAMEND) OUT SPL, R16 ;

/Initialize the HD Port

LDI R16, 0b00000001

OUT DDRD,R16

GENERATOR:

ml: SBI PORTD,

RCALL DELAY

CBI PORTD, 0

RCALL DELAY

RJMP ml

DELAY:

LDI R16, 131 m2: DEC R16 BRNE m2 RET

;Configure the PDO line to the output

;The program "Generator of rectangular impulses (GRI)' 0 ;Output logical '1' to PD0 pin ;Call DELAY subroutine ;Output logical '0' to PD0 pin

;Repeat the period output

;The time delay subroutine of 25 ys, with fc = 16MHz ;Load number 131 in the R16 register ;Decrement of register R16 content ;If register R16 content is not zero, go to m2 ;Return from DELAY

Рис. 6. Фрагмент режима отладки программы GENERATOR в среде AVR Studio

На рисунке показан фрагмент режима отладки программы GENERATOR в среде AVR Studio. После отладки записываем программу GENERATOR в память микроконтроллера с помощью программатора Atmel AVRISP mkII [12]. Он подключается к Arduino Uno через специальный разъем. Файл GENERATOR.hex, содержащий программу на языке машинных кодов, находится в папке проекта.

.include"m328Pdef.inc" /Подключить файл соответствия имен /регистров ввода-вывода их адресам /Инициализировать стек

ателя стека старший

¡LDI R16, high (RAMEND) OUT SPH, R16 ; i

¡ILDI R16, low (RAMEND) OUT SPL, Rl6 / ij

f: / Иници а ли з а ци я порта PI {.LDI Rl6, ObOOOOOOOl /Нг ¡OUT ddrd, r16 : GENERATOR: /Прогрг

ml: SBI PORTD, 0 /Вь ■=>RCALL DELAY ¡CBI PORTD, 0 /Вывеет

RCALL DELAY

[RJMP ml /Повторить

DELAY: /Подпрс

LDI R16, 131 /Зс

:m2: DEC Rl6 /Декреь

BRNE m2 /Если содер

¡RET /Возврат из

rl¡Q

Add re

±j Oad_conve ±1 danalog _c л i) cpu

(DEEPROM ±1 ^EXTERNAL ilSPORTB il S PORTO -I áPORTD

DDRD OxOA (0x2... =|PIND 0x09 (0x29) S PORTD OxOB (0x2... ¿liaSPI ±1 ©TIMER_COi ♦I ©TIMER_COI ±1 ©TIMER_COi iiaTwi

illpUSARTO ±| ¿ÍWATCHDO

ателя стека младшии

ых импульсов (ГПИ)'

Processor X

Program Сои... 0x000007

Stack Pointer OxOSFF

Xpointer 0x0000

Y pointer 0x0000

Cycle Counter 0x0000 814

Frequency 16.0000 MHz

Stop Watch 50.88 us

SREG ШШ0Е1ЕНВО

±1 Registers

Е Project I Processor

Рис. 4. Окно IDE AVR Studio в режиме отладки программы GENERATOR

91

пеппгогичесний ЖУРНПЛ ЕПШНОРТОСТПНП N I (во), 2019 SSSSSSS

На рисунке 7 показана осциллограмма сигнала, формируемого генератором, построенным на микроконтроллерной платформе ЛМиюо. Из осциллограммы видно, что временные параметры сигнала практически соответствуют заданным значениям. При заданной частоте ^ = 20 кГц частота сигнала составляет 19,9 кГц. При заданном ti = 25 мкс длительность импульса составляет 25,1 мкс.

'1 1

I':-';-- «

! СН1 :*Width ■ 25.1 US

■Í-2 00V ]

Рис. 7. Осциллограмма сигнала формируемого генератором на выходе линии PD0 микроконтроллера ATmega328 платформы Arduino Uno

Незначительные расхождения между экспериментальными параметрами сигнала и заданными могут быть объяснены тем, что в расчетах не учитывалось время, необходимое для выполнения микроконтроллером команд (рис. 8.):

SBI PORTD, 0 ;Вывести логическую 1 на выход PD0

CBI PORTD,0 ;Вывести логический 0 на выход PD0

RJMP mi ;Повторить вывод периода

Рис. 8. Фрагмент вычисления расчета.

Для учебного процесса данный факт очень важен, он связывает теорию с практикой, учит студента объяснять результаты исследований. В качестве самостоятельного задания, мы рекомендуем скорректировать параметры сигнала генератора с учетом выше изложенного заключения о расхождении расчетных данных с экспериментальными. Следует обратить внимание, что источником расхождений расчетных и экспериментальных данных может быть погрешность измерительного прибора, в данном случае осциллографа. Поэтому перед проведением эксперимента необходимо убедиться, что измерительный прибор соответствует допустимым значениям погрешности. В качестве измерительного прибора можно использовать, например, цифровой частотомер, но в этом случае наглядность эксперимента будет ниже, чем при использовании осциллографа.

В экспериментальных исследованиях были задействованы: микроконтроллерная платформа Arduino Uno (аппаратная часть), программатор A VRISPmklI, USB-осциллограф DSO-2090 и компьютер.

gssisss профессиональное оерпзоапние: проблемы, нпинп, прпнтинп

Рефлексия формирования начальных навыков по программированию микроконтроллеров средствами ассемблера проводилась путем тестирования студентов второго курса по направлениям подготовки бакалавров 13.03.02 «Электроэнергетика и электротехника» и 35.03.06 «Агроинженерия» в 2017 и 2018 годах. Вопросы ранжировались по уровням: высокий, средний и низкий; участвовали 175 студентов, из них 88 человек в 2017 г. и 87 человек в 2018 г.

Результаты тестирования обрабатывались методами математической статистики как выборочные моменты распределения ответов студентов каждой из групп по соответствующим уровням вопросов (рис. 9)._

Экспериментальная группа — - Контрольная группа

Рис.9. Плотность распределения ответов студентов по уровням вопросов

Мы получили увеличение плотности распределения ответов студентов на вопросы высокого уровня. Кроме того, в 2017 г. было проведено анкетирование студентов с целью выявления оценки студентами методики преподавания программирования микроконтроллеров на базе ассемблера. 84 % опрошенных дали положительную оценку по доступности и наглядности, а также утвердительно ответили на вопрос: «Можете ли вы самостоятельно составить алгоритм и программу на ассемблере для следующей прикладной задачи_?».

Изложенное в статье позволяет сделать следующие выводы. На базе аппаратно-программной (инструментальной) системы «Arduino - AVR Studio -Ассемблер» возможна организация эффективных связей между теоретическими знаниями и практическими навыками, формируемыми в процессе изучения микроконтроллеров бакалаврами инженерных факультетов. Эффективность связей обеспечивается использованием таких когнитивных принципов, как включение нового материала в когнитивную структуру личности студента (связь нового материала со знаниями и навыками, уже доступными студенту), алгоритмизацию, визуализацию и практическую направленность учебных действий. Теоретические знания в рассмотренном примере - это знание архитектуры микроконтроллера, алгоритмов реализации определенных действий и методов разработки программного обеспечения. Практические навыки формируются в процессе выполнения расчета продолжительности работы программы микроконтроллера и проверки полученных результатов в режиме

пеппгогичесннй журнпл спшкортосгпнп м i(ao). aoi9 §®§°®аб

отладки в IDE AVR Studio. Экспериментальные навыки вырабатываются путем проведения исследований реального сигнала разработанного генератора, параметры которого были заданы в начале проектирования. Освоенные знания и навыки составляют основу формируемой компетенции, дальнейшее развитие которой предполагает совершенствование знаний и умений в процессе выполнения бакалаврских (магистерских) и конкурсных работ в области встраиваемых систем управления.

1. Платунов, А. Встраиваемые системы управления [Текст] // Control Engineering Россия. 2013. №1 (43). С. 16-24.

2. Штейнберг, В.Э. Теория и практика дидактической многомерной технологии (монография) [Текст]. - Москва : Народное образование, 2015. - 350 с.

3. Lee, E.A., Seshia, S.A. Introduction to Embedded Systems - A Cyber-Physical Systems Approach. - 2011. [Электронный ресурс]. - URL : http://LeeSeshia.org (дата обращения: 26.01.2019).

4. Котов, И.Ю. Книга по программированию микроконтроллеров AVR [Электронный ресурс]. - URL : http://cxem.net/mc/book.php (дата обращения: 15.01.2019).

5. Vostrukhin, A., Vakhtina, E., Bondar, S. Using Assembler for microcontrollers' study on Arduino-based platform [Текст] // 16th International Scientific Conference "Engineering for Rural Development" : Proceedings, vol.16 (Latvia, Jelgava, 24-26.05.2017) [Электронный ресурс] - URL : http://www.tf.llu.lv/conference/proceedings2017/Papers/N115.pdf (дата обращения: 10.12.2018).

6. Vostrukhin, A., Vakhtina, E, Bondar, S, Tomashik, L. Microcontroller metering converter of capacitance with voltage-controlled RC-generator // 17th International Scientific Conference "Engineering for Rural Development" : Proceedings, vol.16 (Latvia, Jelgava, 23.-25.05.2018.) [Электронный ресурс] - URL : http://www.tf.llu.lv/conference/proceedings2018/Papers/N055.pdf (дата обращения: 12.12.2018).

7. Зубков, С.В. Assembler для DOS, Windows и UNIX. - Москва : ДМК Пресс ; Санкт-Петербург : Питер, 2004. - 608 с.

8. Белов, А.В. Программирование микроконтроллеров для начинающих и не только. -Москва : Наука и техника, 2016. - 352 с.

9. Vostrukhin, A., Vakhtina, E. Studying Digital Signal Processing on Arduino based platform // 15th International Scientific Conference "Engineering for Rural Development" : Proceedings, vol. 15 (Latvia, Jelgava, 25-27.05.2016) [Электронный ресурс] - URL : http://www.tf.llu.lv/conference/proceedings2016/Papers /N043.pdf (дата обращения: 25.12.2018).

10. Вострухин, А.В., Вахтина, Е.А. Введение в программирование микроконтроллера AVR на языке Ассемблера: учебное пособие - 2-е изд., перераб. и доп. - Москва : Илекса, 2010. - 184 с.

11. Complete Instruction Set Summary. [Электронный ресурс] - URL : http://www.avr-tutorials.com/sites/default/files/Instruction%20Set%20Summary.pdf (дата обращения: 29.01.2019).

12. AVRISP MkII. [Электронный ресурс] - URL: http://www.atmel.com/webdoc/avrispmkii/index.html (дата обращения: 28.01.2019).

i Надоели баннеры? Вы всегда можете отключить рекламу.