Архив метки: Assembler

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

Ядро у нас есть, теперь осталось это все хозяйство запихать на МК. Для этого всего лишь надо рассовать нужные части кода в исходник. Показывать буду на примере ATmega8. Для других МК разница минимальная. Может быть с таймером что нибудь помудрить … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (9)

AVR. Учебный курс. Операционная система. Таймерная служба

Третья часть марлезонского балета описалова самопальной операционной системы для AVR. Итак, у нас есть очередь задач и общая логика работы системы. Но одной очереди задач с диспетчером мало. Нужно распределять задачи по времени, задавать интервалы, запускать отложенные задачи. Всем этим … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , , | Комментарии (15)

AVR. Учебный курс. Операционная система. Диспетчер задач.

В прошлой части возник вопрос организации программы по задачам. Чтобы можно было разбить программу на кучу независимых частей и не заморачиваться на тот счет, что где то у нас будет затык. Затык, конечно может быть, это все же не вытесняющая … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (56)

AVR. Учебный курс. Скелет программы

При написании прошивки надо очень внимательно подходить к процессу организации архитектуры будущей программы. Программа должна быть быстрой, не допускать задержек главного цикла и легко расширяться. Оптимально использовать аппаратные ресурсы и стараться выжать максимум возможного из имеющихся ресурсов. Вообще, архитектура программ … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , , , | Комментарии (54)

AVR. Учебный курс. Стартовая инициализация

Инициализация памяти Мало кто подозревает о том, что при включении в оперативке далеко не всегда все байты равны 0xFF. Они могут, но не обязаны. Равно как и регистры РОН не всегда равны нулю при запуске. Обычно да, все обнулено, но … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (38)

AVR. Учебный Курс. Типовые конструкции

При написании программ постоянно приходится использовать разные стандартные конструкции вроде циклов, операторов выбора, перехода, сравнения. Всякие там if-then-else или case-switch. В высокоуровневых языках это все уже готово, а на ассемблере приходится изобретать каждый раз заново. Впрочем, такие вещи пишутся один … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , , | Комментарии (84)

AVR. Учебный курс. Ветвления на индексных переходах

Таблицы переходов Вот представь, что нам надо сделать мега CASE, когда на вход валится число от 1 до 100 и нам надо сто вариантов действий. Как будешь делать? Если лепить сто штук CPI с последующими переходами, то можно дальше убиться … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , | Комментарии (101)

AVR. Учебный курс. Флаги и условные переходы

Есть в AVR (да и, пожалуй, во всех остальных процессорах) особый регистр SREG. О нем я несколько раз упоминал в прошлых статьях, но не вдавался в подробности. Чтож, пришло время рассказать, что же это же SREG такой и зачем он … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , | Комментарии (27)

AVR. Учебный курс. Подпрограммы и прерывания

Подпрограммы Когда один и тот же участок кода часто повторяется, то разумно как то его вынести и использовать многократно. Это дает просто колоссальный выйгрыш по обьему кода и удобству программирования. Вот, например, кусок кода, передающий в регистр UDR байты с … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (144)

AVR. Учебный Курс. Работа с памятью

Так, с работой ядра на предмет переходов и адресации разобрались. Пора обратить свой взор в другую область — память. Ее тут два вида (EEPROM не в счет т.к. она вообщет переферия, а о ней потом): RAM — оперативка ROM — … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (161)

AVR. Учебный курс. Простейшая программа.

Итак, прежде чем что то делать надо понять как вообще выполняется программа в контроллере, как работает ядро процессора. Для этого нам хватит AVR Studio и его эмулятора. Не очень интересно, может даже занудно, но если этот шаг пропустить, то дальнейшие … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (179)

AVR. Учебный курс. Макроассемблер

Перед изучением системы команд микроконтроллера надо бы разобраться в инструментарии. Плох тот плотник который не знает свой топор. Основным инструментом у нас будет компилятор. У компилятора есть свой язык — макроассемблер, с помощью которого жизнь программиста упрощается в разы. Ведь … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , | Комментарии (146)

C vs Assembler

Если ты впервые столкнулся с микроконтроллерами, то наверняка у тебя стал выбор на чем писать. На Си или на Ассемблере. Выбор не прост, не зря программисты однокристальщики раскололись на два непримиримых лагеря. Одни с пеной у рта доказывают, что те … Читать далее

Рубрика: AVR. Учебный курс | Метки: , , , | Комментарии (77)