Pashgan

Pashgan

   Что представляет из себя строка? Это всего лишь массив, последним элементом которого является нулевой символ ‘\0’. Он добавляется компилятором автоматически и служит маркером конца строки. 
   Объявить строку во флэш памяти микроконтроллера AVR можно следующим образом:
   Хотел бы я знать, как думают другие люди. И почему очевидные для одного человека вещи не кажутся таковыми другому и наоборот. Многих начинающих программистов микроконтроллеров IAR AVR отпугивает множеством настроек и отсутствием информации на русском языке. Этот пошаговый мануал покажет вам, что IAR не так уж и страшен.
   Решил не ограничивать тематику сайта IARом. Теперь все выкладываемые мной проекты будут  в двух вариантах - для IARa и для WINAVR. Возможно также по WINAVR появятся отдельные статьи.
   Следующим этапом работы над нашей программой будет разбиение ее на модули. Мы разделим программу на 2 части – основная программа и библиотека для работы с дисплеем. Зачем нужно разбивать программу на модули, и какие это дает преимущества?
    Благодаря низкой цене и простому интерфейсу, символьные ЖК-дисплеи находят широкое применение в различного рода устройствах, начиная от радиолюбительских поделок и заканчивая промышленной аппаратурой. В интернете довольно много примеров и описаний работы с символьными ЖКД, но из маркетинговых соображений, а также, потому что мне есть, что сказать, я решил написать эту статью.
   С помощью описанной в предыдущей статье простой библиотеки программных таймеров, можно легко организовать управление подсветкой LCD дисплея. Учитывая ее большое энергопотребление, неплохо бы включать подсветку только на время работы с устройством. Давишь на кнопки  - подсветка горит, перестаешь - она гаснет. Реализовать это можно следующим образом. Нажатие на любую кнопку - зажигает подсветку и запускает таймер. Пока таймер считает, нажатия на кнопки вызывают его перезапуск. Если в течении заданного времени ни одна кнопка не была нажата, таймер срабатывает и гасит подсветку.
    Аппаратные таймеры/счетчики микроконтроллеров AVR ценный и ходовой ресурс. Чаще всего при их использовании возникает две проблемы – нехватка количества таймеров и невозможность получить временные интервалы большой длительности. Обе эти проблемы можно решить с помощью программных таймеров. Вариантов реализации программных таймеров существует довольно много. Один из них описан в этой статье.
  Сегодня наконец-то запустил форум. Пока что он работает в тестовом режиме. Нужно еще утрясти список разделов и определиться с шаблоном.

   Память программ микроконтроллеров AVR, помимо своего прямого предназначения может быть использована для хранения константных данных. Для этого в AVR ассемблере есть специальные директивы .db и .dw. Первая определяет константный байт или несколько байтов, вторая константное слово или несколько слов. (слово - это 2 байта). Для того чтобы указать, что заданные константы расположены во flash памяти микроконтроллера,  используется директива .cseg 

   Все микроконтроллеры AVR семейства MEGA имеют в своем составе модуль UART/USART. Он позволяет связывать микроконтроллер и компьютер по интерфейсу RS-232. Для этого необходим компьютер с COM портом, преобразователь уровней, ну и соответствующий микроконтроллер. Проблема в том, что современные компьютеры перестают оснащать COM портами, потому что на смену им приходит (или уже пришла) USB. На наше счастье ряд фирм выпускает специализированные микросхемы преобразующие USB в  RS232 без всякой головной боли. Им требуется минимальная "обвязка" внешних компонентов, и для них доступны готовые драйвера. Одна из таких микросхем - FT232BM фирмы FTDI.  Чтобы вы не тратили свое время на изучение документации, рисование схемы и разводку платы, предлагаю вам готовое решение на ее основе.