Главная страница
Навигация по странице:

  • Watch

  • Properties

  • Watch.

  • Рис. 3.2.

  • Asynchronous Stimulus

  • Debug Simulator Stimulus Asynchronous Stimulus

  • Pulse

  • Stopwatch

  • Zero

  • Рис. 3.4. Окно 68 Устройства управления роботамиВ окне Stopwatch

  • Debug Simulator Stimulus Clock Stimulus

  • (Stimulus Pin)

  • Options Development Mode

  • Project New Project

  • Рис. 3.9.

  • • Information Message

  • • Global Optimization

  • Node Properties

  • Устройства управления роботами, схемотехника и программирование (М. Предко, 2004). Устройства управления роботами, схемотехника и программирование. Устройствауправления роботамисхемотехника и микроконтроллеров picmicro


    Скачать 6.79 Mb.
    НазваниеУстройствауправления роботамисхемотехника и микроконтроллеров picmicro
    АнкорУстройства управления роботами, схемотехника и программирование (М. Предко, 2004).pdf
    Дата29.08.2017
    Размер6.79 Mb.
    Формат файлаpdf
    Имя файлаУстройства управления роботами, схемотехника и программирование .pdf
    ТипРеферат
    #8441
    КатегорияПромышленность. Энергетика
    страница5 из 33
    1   2   3   4   5   6   7   8   9   ...   33
    Рис.
    содержимого регистров и значений переменных в окне
    Watch
    Профессиональным разработчикам рекомендую программатор PROMATE II
    и внутрисхемный эмулятор MPLAB ICE. В отличие от многих других программа- торов, PROMATE II может работать со всеми микроконтроллерами PICmicro,
    а эмулятор MPLAB ICE - наилучшее из всех аналогичных устройств, с которыми мне приходилось встречаться.
    Интегрированная среда разработки MPLAB позволяет отображать состояние всех регистров микроконтроллеров PICmicro во время работы с симулятором. Все программы, приведенные в этой книге, перед загрузкой в микроконтроллер прошли предва- рительную проверку с использованием симуля- тора, встроенного в MPLAB. Для отображения содержимого регистров и переменных в MPLAB,
    как и в большинстве других интегрированных средств, предназначено специальное окно про- смотра Watch (рис.
    Для отображения окна Watch необходимо воспользоваться главным меню MPLAB, вы- полнив команды Window
    Watch Windows
    New Watch Window (Окно
    Окна просмот- ра
    Новое окно просмотра). После этого по- явится диалоговое окно выбора регистров. Нажав на кнопку Properties (Свой- ства), можно изменить формат отображающихся в окне Watch значений (см.
    рис. 3.2).
    Окно Watch должно создаваться только после того, как приложение будет скомпилировано без ошибок. До этого список регистров и имен, определенных в программе, может быть недоступным для внесения добавлений.
    Содержимое регистров может отображаться в десятичном и двоичном форматах, а также в виде символов ASCII. Размер данных может быть равным 1,
    или 4 байтам. Для значений, которые занимают в памяти несколько байтов, можно определить формат High:Low (сначала старший байт - как в процес- сорах и микроконтроллерах Motorola) или Low:High (сначала младший байт - как в процессорах Intel). Кроме того, в окне Watch можно отображать состояние от- дельных двоичных разрядов заданных регистров.
    В электронном приложении к этой книге (его можно скачать с сайта www.dmk.ru) в папке Code вместе с примерами программ имеются образцы на- строек для окна Watch. Эти файлы имеют расширение .wat, и их можно загрузить в MPLAB, выполнив команды меню Window
    Watch Windows
    Load Watch
    Window (Окно
    Окна просмотра
    Загрузить окно просмотра). Файлы настро- ек представлены в текстовом виде, их формат достаточно прост, поэтому вы без труда изучите их содержимое с помощью любого тестового редактора.
    я не рекомендую изменять текст конфигурационных файлов с помощью того же редактора, иначе в момент их загрузки может произойти ошибка, и программа
    MPLAB зависнет.

    Микроконтроллеры
    65
    Рис. 3.2. Настройка окна Watch
    встроенный в позволяет моделировать большинство ко- манд микроконтроллеров PIC16F84 и PIC16F627. К сожалению, это не относится к некоторым операциям
    Например, в симуляторе недоступна рабо- та с аналоговыми компараторами и блоком
    ART (Universal Synchronous/
    Asynchronous Receiver/Transmitter - универсальный синхронный/асинхронный приемопередатчик). Позже мы обсудим способ, позволяющий в некоторых случа- ях обойти это ограничение.
    Другой недостаток встроенного симулятора - его невысокое быстродействие.
    Он может выполнять от 1000 до 3000 машинных команд в
    Это значит,
    что моделирование каждой секунды работы реальной программы может занять до
    5 мин. Если учесть, что выполнение кода верхнего (биологического) уровня мо- жет требовать нескольких секунд реального времени, такая медлительность си- мулятора причиняет неудобства при отладке сложных программ.
    Задать входные воздействия (stimulus - стимулы) при моделировании работы программы с помощью симулятора можно пятью способами. Такое оби- лие возможностей, вероятно, обескуражит начинающего пользователя, особенно если учесть, что большинство других симуляторов предоставляет не более двух
    Скорость работы симулятора зависит от тактовой частоты процессора, а также от активности мыши во его работы. — Прим. перев.
    3-2101

    66 Устройства управления роботами способов для выполнения этого действия. Но благодаря разнообразию средств программист может наиболее эффективно решать задачи по отладке своих при- ложений. В
    главах мы подробнее обсудим различные аспекты отлад- ки, а здесь изучим самые общие принципы работы со стимулами.
    Наиболее универсальный метод определения входных воздействий основан на использовании диалогового окна Asynchronous Stimulus (асинхронные входные воздействия) - рис. 3.3.
    Рис. 3.3. Окно задания асинхронных входных воздействий
    Это окно вызывается на экран в результате выполнения команд меню Debug
    Simulator Stimulus
    Asynchronous Stimulus (Отладка
    Входные воздействия
    Асинхронные стимулы). С помощью контекстного меню, вызываемого щелчком !
    правой кнопки мыши, можно сопоставить любую из двенадцати кнопок этого диалогового окна конкретному выводу микроконтроллера, а также указать, как будет изменяться входной сигнал при нажатии на эту кнопку во время отладки приложения. Поддерживаются четыре режима: Pulse (Импульс), Low (Низкий),
    High (Высокий) и Toggle (Переключатель).
    В режиме Pulse на соответствующем входе микроконтроллера будет сформи- рован одиночный импульс, то есть входной сигнал изменит свое значение на про- тивоположное и снова вернется в исходное состояние в течение одного командно- го цикла работы процессора. Это удобно для тактирования таймера или генерации запроса на внешнее прерывание.
    Режимы Low и High позволяют подать на вход сигнал соответственно низкого и высокого уровня. Таким образом, запрограммировав две кнопки диалогового окна Asynchronous Stimulus для работы с одним и тем же выводом микрокон- троллера (одну - для высокого, а вторую - для низкого уровня), можно в любой момент задать значение входного сигнала на этом выводе.
    Режим Toggle позволяет переключить состояние входного сигнала на проти- воположное.
    Должен признаться, что мне не слишком нравится только что описанный спо- соб определения входных воздействий. Наверное, потому, что при отладке своих программ я слишком часто забывал в нужный момент нажать нужную кнопку,
    а нередко нажимал кнопки в самые неподходящие моменты. Кроме того, приве- денный способ задания стимулов раз в двадцать замедляет процесс отладки.
    Более удобный метод указания входных воздействий основан на использова- нии специального текстового файла (файла стимулов, stimulus file). Каждая его
    I

    Микроконтроллеры
    67
    строка определяет состояние сигнала на любом выводе микроконтроллера в каж- дый момент времени.
    Приведем простой пример файла стимулов:
    ! Пример файла стимулов
    Step
    1 100 200 300 400 500 600 700 800
    RBO
    0 0
    1 1
    0 0
    1 1
    RB1 0
    1 1
    0 0
    1 1
    0 0
    Восклицательный знак ставится в начале комментария (весь текст справа от него до конца строки игнорируется). Следующая строка начинается директивой
    Step; за ней следуют имена выводов микроконтроллера, для которых мы хотим задать входные сигналы. В нашем примере это выводы и RB1. В общем случае быть заданы любые выводы, их имена всегда начинаются с буквы R, за ко- торой следует имя порта (А, В, С и т.д.) и номер бита (от 0 до 7). Имя сигнала сброса -
    (Master Clear).
    Далее для каждого значения счетчика машинных команд и т.д.) зада- ется соответствующее значение входного сигнала. В приведенном примере сигнал сброса не используется, поэтому после то- го как процесс моделирования дойдет до
    800, оба вывода останутся в состоянии,
    определяемом последней строкой файла,
    и будут находиться в этом состоянии,
    пока не будет подан сигнал MCLR.
    Для отображения числа выполненных машинных циклов можно вызвать на эк- ран окно Stopwatch, выполнив с помо- щью меню MPLAB команды Window
    Stopwatch (Окно
    Окно останова) - рис. 3.4.
    Обычно я использую параметр Clear on Reset (Очистить при сбросе), пред- назначенный для автоматического сброса счетчика выполненных машинных ко- манд при подаче сигнала сброса микроконтроллера. В любой момент счетчик может быть обнулен нажатием на кнопку Zero (Обнулить) в окне Stopwatch.
    Однако пользоваться этой возможностью следует осторожно. Не следует забы- вать, что после обнуления счетчика файл стимулов опять будет просматривать- ся с самого начала. Иногда это полезно для того, чтобы цикл,
    заново повторяя последовательность всех воздействий, описанных в файле сти- мулов.
    Рис. 3.4. Окно

    68 Устройства управления роботами
    В окне Stopwatch отображается частота процессора; ее можно изменить, вы- полнив команды Option
    Development Mode
    Clock (Настройки
    Режим разработки
    Тактовая частота).
    Для вычисления номера шага, который надо указать в файле стимулов, можно использовать простую
    Step = t x F / 4, .
    где F - заданная частота процессора; t - задержка во времени относительно мо- мента начала выполнения программы (в секундах).
    Например, при частоте 3,58 МГц задержка в 250 мкс соответствует значению счетчика машинных циклов: - . . .
    Step = 250 мкс х 3,58 МГц / 4 = 223,75,
    что после округления дает 224. Именно это значение и надо указать в первой ко- лонке файла стимулов.
    Для подачи на входы микроконтроллера периодической последовательности прямоугольных (тактовых) импульсов надо с помощью главного меню MPLAB
    выполнить команды Debug
    Simulator Stimulus
    Clock Stimulus (Отладка
    Входные воздействия
    Тактовые импульсы). В результате на экране появится диалоговое окно (рис. 3.5), в котором можно будет выбрать нужный вывод
    (Stimulus Pin), длительность импульса высокого уровня (High) и длительность паузы между импульсами (Low). Период генерируемой последовательности пря- моугольных импульсов будет равен сумме этих двух величин. При выборе пара- метра Invert (Инверсия) последовательность будет инвертирована, то есть сразу после подачи сигнала сброса генерируемый стимул примет низкий уровень. Как
    Рис. 3.5. Диалоговое окно для настройки подачи тактовых импульсов
    Деление на четыре необходимо, потому что микроконтроллеры PICmicro выполняют одну машин- ную команду за четыре периода работы тактового генератора. - Прим.

    Микроконтроллеры PICmicro 69
    Рис. 3.6. Выбор значений регистров во время отладки и раньше, все промежутки времени указываются в циклах работы счетчика вы- полняемых команд.
    Тактовые входные импульсы обычно используются для отладки функций по вводу-выводу, для подачи регулярно повторяющихся импульсов на входы микро- контроллера, а также для отладки реакций на внешние прерывания.
    Как уже говорилось, с помощью си- невозможно провести модели- рование некоторых сложных операций ввода-вывода. Этот недостаток может быть частично компенсирован с помо- щью так называемых регистровых сти-
    мулов (Register Stimulus). Программист может во время отладки задать в шест- коде значение любого регистра, выполнив команды меню De- bug
    Simulator Stimulus
    Register
    Stimulus
    Enable (Отладка
    Вход- ные воздействия
    Регистровые стиму- лы
    Включить) - рис. 3.6.
    В появившемся диалоговом окне необходимо выбрать адрес команды или мет- ку программы, которая будет определять момент подачи стимула, а также указать имя или адрес регистра, которому будет принудительно присвоено заданное зна- чение. После этого, нажав на кнопку надо выбрать заранее подготов- ленный файл, в котором определены нужные значения в коде.
    Это простой текстовый файл; каждая его строка должна содержать две цифры, например:
    00 03 05 09 12 1C

    06 .

    Никакие комментарии или многобайтные значения здесь не допускаются. Те- перь при отладке программы каждый раз, когда выполнение будет доходить до указанного адреса (или символьной метки), в заданный регистр будет записывать- ся очередное значение, взятое из этого файла. Таким способом можно задать зна- чение только одного регистра.
    Регистровые стимулы удобно использовать для моделирования сложных опера- ций ввода-вывода, которые не поддерживает встроенный симулятор MPLAB,
    в частности для отладки программы, использующей USART (этот пример будет рассмотрен позже).
    Для изменения значений сразу нескольких регистров можно воспользоваться окном Register Modify (Модификация содержимого регистров), показанным на

    70 Устройства управления роботами
    Рис.
    Окно
    Modify
    для
    содержимого регистров
    рис. 3.7, которое можно вызвать на экран с по- мощью команд меню Window
    Modify
    (Окно
    Модификация).
    Таким способом можно изменить значе- ние любых регистров, в том числе и рабочего регистра w.
    Все пять описанных способов моделиро- вания входных воздействий могут использо- ваться совместно.
    Дополнительное удобство, предоставляе- мое интегрированной средой MPLAB, за- ключается в том, что при определении вход- ных воздействий все регистры и выводы микроконтроллера доступны по именам,
    а вместо абсолютных адресов программы можно указывать символьные метки.
    Теперь пора обсудить использование компилятора
    Lite. Этот инструмент разработчика хорошо интегрируется со средой MPLAB, и вы удивитесь, как быс- тро мы сможем создавать с его помощью работающие программы. Есть вы знако- мы с языком С, то, безусловно, оцените и такую приятную особенность PICC Lite,
    как подробные сообщения, выдаваемые во время работы компилятора. Например,
    предупреждение (warning) выдается при попытке использовать конструкцию if (variable = constant) '
    вместо правильного оператора '
    if (variable == constant)
    Рассмотрим пример работы с компилятором в среде MPLAB. Для того чтобы проиллюстрировать весь цикл разработки приложения, в том числе и процесс от- ладки с помощью встроенного симулятора, сделаем в нашей программе на языке С
    несколько ошибок, как синтаксических, так и смысловых. Ошибки первого типа мы устраним после того, как увидим сообщение компилятора, а для исправления вто- рых потребуется провести моделирование работы программы в симуляторе.
    Рассматриваемый ниже текст программы содержится в электронном приложе- нии к этой книге, которое вы найдете на сайте www.dmk.ru. в файле example.c (пап- ка Code\Example):
    // 31 марта 2002 -
    Predko.
    //
    // Пример программы на языке С.
    //
    // Программа содержит синтаксические и смысловые ошибки.
    //
    // Используется микроконтроллер PIC16F84, частота тактирования 4 МГц.
    // Младший бит порта В (обозначается RBO)
    // с максимально возможной частотой.
    // Глобальные переменные:
    // Слово

    т
    Микроконтроллеры PICmicro 71
    // XT генератор тактовых импульсов.
    // Включить PWRT.
    // Выключить сторожевой таймер.
    // Выключить защиту кода программы.
    // Главная программа:
    void
    {
    while (1 == 1)
    RBO = RB1 "
    Инверсия бита RBO.
    } // Конец главной программы.
    Запустите
    В нижней строке окна программы отображается название микроконтроллера, для которого в данный момент разрабатывается программа.
    Для нашего примера необходим
    Если вы видите другое имя, выполни- те команду меню Options
    Development Mode (Настройки
    Режим разработ- ки) и укажите нужную модель МК, открыв вкладку Tools (Инструменты).
    После этого можно создать новый проект, выполнив команды Project
    New
    Project (Проект
    Новый проект) - рис. 3.8.
    Рис. 3.8. Начало создания нового проекта в

    72 Устройства управления роботами
    В появившемся окне (рис. 3.9) необходимо задать имя будущего проекта,
    а также указать диск и для размещения файлов. В примере на рис.
    выбраны имя example.pjt и каталог Code\Example на диске
    Рис. 3.9. Диалоговое окно создания нового проекта
    Рис. 3.
    Выбор имени и места размещения проекта
    После нажатия кнопки ОК появится диалоговое окно Edit Project (Редакти- ровать свойства проекта) для настройки параметров проекта. По умолчанию
    MPLAB считает, что приложение будет написано на ассемблере, поэтому в поле
    Language Tool Suite (Инструментальное средство) значится Microchip. Необхо- димо выбрать HI-TECH
    Lite (рис.
    Затем необходимо выделить с помощью мыши целевой файл и нажать кнопку Node Properties... (Свойства) для установки необходимых ре- жимов компиляции (рис.

    Микроконтроллеры PICmicro 73
    Рис.
    Настройка параметров проекта
    Выберем следующие параметры:
    • Information Message - Quiet (Выключить режим расширенных сообщений);
    • Generate debug info - On (Генерировать информацию для отладчика);
    • Assembler Optimization
    On (Включить оптимизацию ассемблерного кода);
    • Global Optimization - On (Включить общую оптимизацию);
    • Floating point for double - 24-bit (24-разрядные вещественные значения);
    • Error file - On (Генерировать файл ошибок);
    • Append Errors to file - On (Ошибки записывать в конец файла).
    По окончании настройки нажмите кнопку ОК. В результате вы вернетесь в окно Edit Project, где теперь надо нажать кнопку Add Node (Добавить файл к про- екту), а затем указать файл с исходным текстом программы. В примере на рис.
    выбран файл example.c.
    Для правильной работы MPLAB необходимо,
    файлы, подключаемые к проекту, находились в той папке, которая была задана при создании данного

    74 Устройства управления роботами
    Рис.
    Выбор режимов компиляции в окне
    Node Properties
    Рис.
    Выбор файла с исходным текстом программы на языке С
    проекта (см. рис. 3.10). В противном случае будет выдано предупреждающее со- общение.
    После выбора файла с исходным текстом программы и нажатия кнопки ОК
    требуется подтвердить заданные параметры, еще раз
    ОК в диалоговом окне Edit Project. Окно программы MPLAB примет первоначальный вид (см.
    рис. 3.8).

    Микроконтроллеры PICmicro 75
    Теперь можно просмотреть или отредактировать исходный текст программы,
    выполнив команду меню
    1   2   3   4   5   6   7   8   9   ...   33


    написать администратору сайта