DI Halt - AVR. Учебный курс + Code

Скачать

DI Halt - AVR. Учебный курс  + Code

AVR Учебный курс

Год: 2008

Автор: DI Halt

Язык: Русский

Формат: PDF

Качество: Изначально компьютерное (eBook)

Количество страниц: 575

Описание: Учебный курс по микроконтроллерам семейства AVR

AVR. Учебный курс. ...........................................1

Автор DI HALT ..1

2008......................1

Постановка задачи...............................................6

Вводная. Что такое микроконтроллер..............7

C vs Assembler...10

Архитектура.....13

AVR Studio ликбез.............................................18

AVR Studio в Linux............................................25

Макроассемблер................................................28

Простейшая программа....................................30

Работа с памятью...............................................37

Подпрограммы и прерывания..........................49

Флаги и условные переходы.............................61

Ветвления на индексных переходах................67

Типовые конструкции.......................................72

Стартовая инициализация................................82

Скелет программы.............................................83

Операционная система. Введение....................87

Операционная система. Диспетчер задач........89

Операционная система. Таймерная служба....96

Операционная система. Установка................100

Операционная система. Пример....................104

Оценка загрузки контроллера........................110

Управляемый вектор прерывания..................113

Устройство и работа портов ввода-вывода....115

Подключение микроконтроллера. Ликбез.....122

Управление мощной нагрузкой постоянного тока........................................133

Трактат о программаторах..............................138

SinaProg — графическая оболочка для AVRDude.........................................142

Использование Bootloader’а...........................147

Прошивка PinboardProg для превращения демоплаты PinBoard в ISP программатор................................156

Конфигурация FUSE бит................................160

Отладочная плата PinBoard v1.1....................164

Работа с портами ввода-вывода. Практика...177

AVR Studio и HAPSim.....................................190

Таймеры...........192

Использование ШИМ......................................199

Передача данных через UART.......................212

Извращенский ШИМ из UART......................224

Использование EEPROM................................224

Использование аналогового компаратора.....226

Выдача данных с АЦП на UART. Мультиплексирование каналов АЦП....229

Аппаратные средства повышения точности.235

Работа с АЦП. Программные средства повышения точности.....................236

Отладка программ. Часть 1.............................239

Отладка программ. Часть 2.............................243

Отладка программ. Часть 3.............................245

Отладка программ. Часть 4.............................249

Процедура сканирования клавиатуры...........253

Подключение к AVR LCD дисплея HD44780................................................258

Библиотека для LCD на базе HD44780..........264

Виртуальные порты.........................................267

Делаем АЦП из Аналогового компаратора...269

Внутрисхемная отладка AVR через JTAG ICE...............................................274

Программирование на Си. Часть 1................283

Программирование на Си. Часть 2................294

Программирование на Си. Часть 3................301

Программирование на Си. Часть 4................309

Программирование на Си. Атомарные операции..........................................312

Как писать программы без ошибок...............319

Введение.....319

Про ошибки319

Для кого это пособие.............................319

«Учите матчасть!»......................................320

Схемотехника.....................................320

Контроллер.........................................320

Язык...320

Компилятор........................................320

Этапы программирования..........................321

Планирование программы.........................321

Расписать алгоритм....................................321

Продумать модули......................................322

Продумать данные......................................322

Разделить периферию контроллера между процессами..........................322

Учесть физические свойства обвеса.........323

Предусмотреть возможность расширения................................................323

Предусмотреть смену платформы или компилятора................................323

Написание программы...............................324

Кодирование................................................324

Соблюдать модульность........................325

Избегать условностей............................325

Типы данных......................................325

Приведение типов.............................326

Побайтовое обращение к многобайтовой переменной...................326

Определение функций......................326

Пустые операторы.............................327

Про оператор switch..........................327

Неинициализированные переменные...............................................327

Скобки в сложных выражениях.......327

«Такая ситуация никогда не случится!»...........................................327

Мертвые циклы..................................328

Не делать длинных и сложных выражений..........................................329

Операторные скобки..............................329

Операторы break и continue во вложенных циклах..............................330

Точность вещественных чисел.............331

Целочисленное деление........................331

Округление.........................................331

Последовательность делений и умножений....................................332

Правила для констант............................333

Не использовать числовые константы..............................................333

Указывать тип константы.................333

Задавать константам осмысленные значения..................................334

Два слова о проверке правильности задания констант...................334

Заключать константы и операнды макросов в круглые скобки..........336

Заключать тела макросов в фигурные скобки......................................336

Правила для функций............................337

Объявлять прототипы для всех функций.........................................337

Проверять входные аргументы функций на правильность............337

Возвращать функцией код ошибки..338

Не делать очень больших функций.338

Использовать сторожевой таймер........338

Когда нужно обрабатывать WDT.....339

Что делать, если произошел сброс по WDT....................................339

Два слова об операторе GOTO..............340

Выход из вложенных циклов............340

«Стандартные» метки.......................341

Оптимизация......................................342

Атомарный доступ.................................342

Оформление................................................343

Удобный инструментарий.....................343

Именование идентификаторов..............343

Именование функций........................343

Именование констант........................344

Именование типов.............................344

Именование переменных..................344

О «венгерской нотации»...................344

Форматирование текста.........................346

Текст файла должен быть разбит на секции....................................346

Горизонтальные отступы..................346

Вертикальное выравнивание............346

Не делать в строке больше символов, чем помещается на одном экране......................................347

Одна строка – одно действие...........347

Разделять функциональные узлы или конструкции (for, if, …) пустыми строками.....................347

Пробелы между операндами и операциями....................................347

Комментирование...................................347

Почему не пишут комментарии.......348

Для кого пишутся комментарии.......348

комментариев...............348

Что должно быть в комментариях:..............................................348

Чего в комментариях быть не должно:........................................349

Расположение комментариев...........349

Многострочные комментарии..........350

Содержательная часть комментария351

Формулировка....................................351

Отладка и тестирование.............................351

Инструменты...............................................352

Резерв по ресурсам.....................................352

Запас по периферии..........................352

Внутренняя периферия контроллера...........................................352

Внешняя периферия.....................352

Память для размещения отладочного кода......................................352

Резерв скорости.................................352

Заглушки и тестеры....................................353

Функции-заглушки............................353

Функции-тестеры..............................353

Предупреждения при компиляции............353

Что делать, если компилятор выдал предупреждение?..................354

Вывод отладочной информации................354

Блокировка вывода отладочной информации...........................................354

Резервное копирование..............................355

Программирование на Си. Работа с памятью, адреса и указатели..............356

AVR toolchain своими руками........................365

Архитектура Программ...................................368

Архитектура Программ Часть 2.....................374

Архитектура Программ. Часть 3....................380

Архитектура Программ. Часть 4....................383

Конечный автомат............................................405

Работа на прерываниях...................................408

Виртуальная машина и байт код....................413

Пример виртуальной машины........................415

Использование интерфейса USI в режиме мастера TWI..............................419

Использование AVR TWI для работы с шиной IIC (i2c)...............................425

Кусочно-линейная аппроксимация................441

Создание Bootloader’a.....................................448

Инкрементальный энкодер.............................453

Обработка множества инкрементальных энкодеров одновременно...........458

Организация древовидного меню..................463

Работа с портами ввода-вывода микроконтроллеров на Си++....................469

Управление множеством сервомашинок.......496

Подключение клавиатуры к МК по трем проводам на сдвиговых регистрах.............................................503

Подключение клавиатуры к МК по трем проводам на сдвиговых регистрах. Часть 2. Буквенный ввод как

на телефоне.....526

Асинхронный режим таймера........................540

Работа с резистивным сенсорным экраном..546

Работа с графическим дисплеем WG12864 на базе контроллера KS0107..552

AVR Studio 4.19 и AVR Toolchain...................565

FT2232D и AVR. Прошивка и отладка по JTAG............................................565

Содержания приложения

1) Скелет программы ........................avr_kurs_1.zip

2) Операционная система. Введение. .........HMTR-rtos.rar

3) Операционная система. Диспетчер задач.

3.1 Trash-rtos.asm - главный файл программы

3.2 kerneldef.asm - файл макроопределений ядра

3.3 kernel.asm - ядро

3.4 Trashduino-rtos.zip - Архив с исходниками и работающим проектом для ATMega8

4) Операционная система. Пример.............NewMega.rar

5) Использование Bootloader’а...............Bootloader.rar

6) Прошивка PinboardProg для превращения демоплаты PinBoard в ISP программатор

6.1 16_PinboardPROG.hex

6.2 32_PinboardPROG.hex

7) Работа с портами ввода-вывода. Практика..io.zip

8) AVR Studio и HAPSim......................Hapsim.zip

9) Таймеры..................................ontimer.zip

10) Использование ШИМ........................pwm.zip

11) Выдача данных с АЦП на UART. Мультиплексирование каналов АЦП

11.1 avr_kurs_11.zip

11.2 Terminal.exe

12) Работа с АЦП. Программные средства повышения точности

12.1 ADCsoftFilter.rar

13) Отладка программ. Часть 4................demo16-rtos.zip

14) Процедура сканирования клавиатуры........MultiDebug.rar

15) Подключение к AVR LCD дисплея HD44780....LCD_HD44780.rar

16) Виртуальные порты........................VPort.asm

17) Делаем АЦП из Аналогового компаратора....UARTundSoftADC.zip

18) Внутрисхемная отладка AVR через JTAG ICE

18.1 JTAG.lay

18.2 miniICE.hex

19) Программирование на Си. Часть 1..........Pinboard_1_1.rar

20) Программирование на Си. Часть 2..........Pinboard_1_2.rar

21) Программирование на Си. Часть 3..........Pinboard_1_3.rar

22) Архитектура Программ Часть 2.............GCC-RTOS.ZIP

23) Архитектура Программ. Часть 4............avr_os.zip

24) Конечный автомат.........................switch_tech.zip

25) Работа на прерываниях....................Pinboard_5.zip

26) Пример виртуальной машины................WM-GCC-RTOS.ZIP

27) Использование интерфейса USI в режиме мастера TWI

27.1 usi.rar

28) Использование AVR TWI для работы с шиной IIC (i2c)

28.1 avrmultimaster.zip

29) Создание Bootloader’a....................BootExample.zip

30) Обработка множества инкрементальных энкодеров одновременно

30.1 encodertests.zip

31) Организация древовидного меню

31.1 testmenumod.zip - Файлы для Proteus

31.2 testmenusrc.zip - Исходники

32) Работа с портами ввода-вывода микроконтроллеров на Си++

32.1 cppgpioforavr.zip

33) Управление множеством сервомашинок.......gcc-rtos_1.zip

34) Подключение клавиатуры к МК по трем проводам на сдвиговых регистрах.

34.1 buttons_2.rar - Проект для AVR Studio

34.2 template_RTOS.rar - Шаблон микроядрая для AVR Studio

35) Асинхронный режим таймера................GCC-RTOS-ASSY_RTC.ZIP

36) Работа с резистивным сенсорным экраном...GCC-RTOS--tscreen.zip

37) Работа с графическим дисплеем WG12864 на базе контроллера KS0107

37.1 TestingWGLCD.zip

38) Прошивка и отладка по JTAG

38.1 happy_jtag.zip

38.2 happy_jtag.zip

Скачать