Рисунок 4.1 - Вікно результатів роботи MPASM
Угорі перший рядок указує чи є помилки. У нашому випадку вони є, тому з'являється наступне повідомлення:
-
Errors Found і червона лінія 100%; Кількість помилок - Errors: 1;Кількість описок - Warnings:
- REPORTED: 0;
- SUPPRESSED: 0;
Кількість повідомлень – Messages:- REPORTED: 1;
- SUPPRESSED: 0;
Усього рядків – (LINES ASSEMBLED): 432.В вікні результатів компіляції з‘явиться текст:
―Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\work\led.HEX".
Clean: Done.
Executing: "C:\Program Files\MPLAB IDE\MCHIP_Tools\Mpasmwin.exe" led.asm /e+ /l+ /x- /p16F877 /c+
Error[113] C:\work\LED.ASM 35 : Symbol not previously defined (PORTTB)
Message[302] C:\work\LED.ASM 41 : Register in operand not in bank 0. Ensure that bank bits are correct.
Halting build on first failed translation as user preferences indicate.
BUILD FAILED: Sun Feb 04 12:49:37 2007‖
В програмі навмисне була допущена помилка ―PORTTB‖ (Error[113]
C:\work\LED.ASM 35 : Symbol not previously defined (PORTTB)). Повідомлення ―Message[302] C:\work\LED.ASM 41 : Register in operand not in bank 0. Ensure that bank bits are correct.‖ нагадує, що регістр TRISB знаходиться не в нульовому банку і попередньо необхідно встановити перший банк.
Подвійне клацання "мишею" на повідомленні про помилку перенесе курсор на рядок в початковому тексті, де була зроблена помилка. Після виправлення всіх помилок і повторній компіляції на екрані з'явиться вікно результатів з повідомленням про успішну компіляцію (рисунок 4.2) з зеленою лінією.
0В вікні ―Output‖ останнє повідомлення буде ―BUILD SUCCEEDED‖. Тепер можна використовувати симулятор для перевірки роботи програми.
Примітка. При старті компіляції відкриті початкові файли зберігаються на диску.
Проте треба переконатися, що програма працює. Як це зробити?
Для цього в MPLAB IDE передбачений процес відладки.
Для його активації необхідно вибрати ―Debugger/Select Tool/MPLAB SIM‖. Після цього на панелі інструментів з'явиться така група кнопок:
Призначення кнопок наступне (зліва на право):
RUN - Запуск програми. Програма працює з великою швидкістю, не відбувається оновлення вікон Watch. Якщо використовується MPLAB ICD2, то дана кнопка запускає програму в реальному часі. Halt - Пауза.Animate - Анімація. Програма працює швидко, але в покроковому режимі. Швидкість роботи нижча, ніж в першому випадку, проте відбувається новлення всіх вікон.
Step Into – Крок. Програма виконується в покроковому режимі. Виконується КОЖНА команда. Гаряча клавіша F7. Step Over – Крок без підпрограми. Якщо наступною командою є виклик підпрограми, то Ви отримаєте результат роботи цієї підпрограми, а сам процес робота підпрограми залишиться «за кадром». Тобто Ви не потрапите «всередину» підпрограми. Step Out – Вихід з підпрограми. Ви вийдете з підпрограми, в якій знаходитеся в даний момент. Ви отримаєте дані роботи підпрограми. Reset – Скидання мікроконтролера.Для зручності користувача передбачено меню View. З його допомогою Ви можете спостерігати:
1. File Registers – регістри ОЗП мікроконтролера.
2. Program Memory – пам'ять програм мікроконтролера.
3. EEPROM – пам'ять ПЗП мікроконтролера (EEPROM).
4. Special Function Registers – регістри спеціального призначення.
5. Watch – спеціальне вікно, в якому можна проглядати будь-які дані, розташовані в ОЗП мікроконтролера. На цьому вікні ми зупинимося трохи нижче.
6. Hardware Stack – стек мікроконтролера. У даному вікні Ви побачите адреси повернення з підпрограм і переривань.
7. Disassembly Listing – Код програми на мові Асемблер. Вельми корисна функція для людей, що пишуть на мовах високого рівня.
Отже, приступимо до відладки.
Нас, перш за все, цікавлять такі регістри: WREG, PORTB, TRISB.
Додамо їх у вікно WATCH для спостереження за їх станом.
Для цього необхідно:
1. Відкрити вікно Watch – View/Watch
2. У ЛІВОМУ випадному списку вибрати необхідний Вам регістр і натиснути кнопку Add SFR
3. Якщо Ви хочете додати свій власний символ, наприклад регістр counter, то Вам необхідно вибрати в ПРАВОМУ випадному списку і натиснути кнопку ―Add Symbol‖ .
4. Зручнішим і зрозумілішим способом поміщення регістра в watch є «Drag and Drop», тобто просто виділяємо регістр і перетягуємо його у вікно watch.
5. Далі необхідно змінити параметри даних у вікні Watch, для цього необхідно виконати такі дії:
a. Лівою кнопкою мишки виділити регістр, що цікавить Вас.
b. Натиснути праву кнопку миші і вибрати «Properties»
На екрані з'явиться вікно «властивості». В результаті цих дій ми повинні отримати всі регістри, що цікавлять нас при відладці програми. Відкомпілюємо наш проект, для цього необхідно натиснути <F10> Після компіляції лічильник команд встановиться в 0x00.
Натискаємо <F7> і стежимо за станом мікроконтролера у вікні watch.
Вам може захотітися дізнатися інтервали між якими-небудь подіями. Для цього в середовищі розробки MPLAB IDE існує спеціальне вікно – stopwatch.
Викликати це вікно можна так:
Debugger/Stopwatch
Працювати з даним вікном дуже просто – обнулили, запустили, подивилися. Даним інструментом зручно користуватися у поєднанні з іншою функцією MPLAB IDE – точками останову (breakpoints). Точка останову, це крапка в якій відбудеться останов процесу симуляції. Після перевірки працездатності програми необхідно якимсь чином «запихнути» цю програму в мікроконтролер.
Дану роботу виконує пристрій під назвою Програматор.
Програматори бувають фірмові, типу фірмових і саморобні.
Фірмові програматори – це програматори, що випускаються фірмою Microchip.
Вони повністю відповідає специфікації програмування всіх мікроконтролерів, що випускаються. Тривалість, скважність і інші характеристики програмування контролюються процесором програматора, а не комп'ютером. Тобто програматор буде однаково добре працювати на комп'ютерах різної продуктивності.
Фірмові програматори, які випускає фірма Microchip:
Програматор розробника PICSTART Plus
Цей програматор, що підтримує всі мікроконтролери фірми Microchip, оснащений панелькою програмування з нульовим зусиллям, що дозволяє просто встановлювати і витягувати мікроконтролер з програматора. Інтерфейс програматора інтегрований в середу розробки MPLAB IDE, що дозволяє програмувати контроллер без яких-небудь додаткових програм.
Інтерфейс зв'язку з комп'ютером – RS232.
Внутрішньосхемний відладчик MPLAB ICD2.
Цей унікальний пристрій може стати в нагоді розробникові не тільки для відладки програм, але і для «банального» програмування мікроконтролерів. Проте його можливості як програматор не такі великі. Він не підтримує мікроконтролери серії PIC17, підтримує обмежену кількість мікроконтролерів PIC16. Проте, даний пристрій дозволяє програмувати всі мікроконтролери серії PIC18, микроконтроллеры серії PIC12 з flash пам'яттю програм, а також підтримує все нові мікроконтролери серії PIC16, наприклад PIC16F628A, PIC16F648A, PIC16F818, PIC16F819, PIC16F877 і т.д.
Інтерфейс даного налагоджувального засобу також інтегрований в середу розробки MPLAB IDE версії 6.хх і вище. Зв'язок з комп'ютером – USB, RS232.
Для 8 і 14 вивідних мікроконтролерів Flash фірма Microchip випустила недорогий модуль PICkit1 FLASH STARTER KIT. Він є платою з мікроконтролером, що управляє, і панелькою для 8 (14) вивідних мікроконтролерів. Також є 8 світлодіодів, потенціометр і кнопочка. Для «продвинутих» користувачів є майданчик для макетування і друкарська плата для збору модуля інтерфейсу RS232.
Інтерфейс даного налагоджувального засобу інтегрований в середу розробки MPLAB IDE версії 6.хх і вище, але є і окрема програмна оболонка, що дозволяє проводити програмування, читання, стирання, верифікацію без участі MPLAB IDE. Також дана оболонка дозволяє відновлювати калібрувальні дані вбудованого тактового генератора.
Для промислового використання фірма Microchip випускає спеціалізовані програматори PRO MATE II і PM3. Вони призначені для серійного виробництва і розраховані на об'єми до 10 тис. мікроконтролерів в місяць.
Існують менш дорогі програматори. Назвемо їх «третіх фірм». Поза сумнівом, їх головний плюс - менша вартість. Вони випускаються не фірмою Microchip, а сторонніми розробниками. Випускаються вони серійно і їх не можна називати «кустарними». Часто, в них використовуються передові технології. Багато хто з них володіє хорошими показниками, і, можливо, нічим не гірше фірмових. Проте ніхто не дає гарантії, що завтра ця фірма не розчиниться в повітрі. В цьому випадку Ви залишитеся наодинці з незрозумілою залозкою, яка програмує далеко не всі мікроконтролери, до того ж Ви втратите можливість подальшого поповнення списку програмованих мікроконтролерів.
Третій клас програматорів – саморобні.
Найпростіші з них, в буквальному розумінні цього слова, можна «зібрати на коліні», при цьому використовуючи навісний монтаж. Більш «просунуті» вимагають деяких знань в області схемотехніки. Принципові схеми даних програматорів легко можна знайти в Інтернеті. Також в Інтернеті Ви можете знайти і програми для комп'ютера, що дозволяють працювати з цими програматорами.