Поклонники продукции Microchip Technology Inc тусуются тут.
Пт авг 31, 2018 08:10:41
Как добавить C h файлы с относительными путями ? Что бы при переносе из оной папки проекта в другую, MPLAB открывал файлы проекта куда он был скопирован
Пт авг 31, 2018 08:17:21
При добавлении есть такой выбор. Смотрите в окне выбора файла.
Ср июл 17, 2019 22:06:06
Первый раз попробовал написать программу для микроконтроллеров PIC. До этого был небольшой опыт с AVR.
Скачал MPLAB X IDE + компилятор XC8. Программку написать удалось, но не без приключений.
Что бесит по-сравнению с Atmel Studio. В MPLAB X IDE я не нашел где активируется автоподстановка. Мало того, что просто операторы языка СИ не предлагает дописать по первым буквам, хотя в настройках вроде прописана подстановка при написании начальных букв. Но самая главная головная боль - не выдает подсказки по уже написанным именам функций, переменных, дефайнов и тп. Приходится или ручками выписывать на листик, или лазить по коду впоисках нужного написания имен и путем копировать - вставить переносить в код.Это долго и неудобно.
Я не программист, поэтому терминологией не владею, но надеюсь понятно написал. В общем как это исправить?
И второй момент, касающийся имен регистров (конкретно для пробы пера PIC16F88) их написание не совпадало с даташитом (Пример: даташит T0IE, XC8 - TMR0IE).
Плюс непонятный момент по записи битов регистра. Работает как прямая запись TMR0IE=1; Так и найденное в интернете OPTION_REGbits.TMR0IE=1; Причем в user guide на компилятор я не нашел, как правильно.
PS и последнее, была проблема с русскими комментариями пока не нашел, где меняется кодовая страница. Но вот мнения в интернете разделились. Что лучше использовать: win-1251 или koi-8R?
Чт июл 18, 2019 05:47:18
2. в *.h-файле с именем как у микроконтроллера есть все define
На мой взгляд лучше использовать кодировку windows-1251
Чт июл 18, 2019 08:57:18
-=Vovka=-, я этот хидер чисто случайно нашел. А так я устал разворачивать xc.h в поисках нужных файлов. Жутко неудобно. Проще было найти поиском в самой папке компилятора XC8.
Остался пока непонятный момент с авто подстановкой. Неужели ее совсем нет? Это же жутко неудобно помнить все назначаемые имена переменных и функций
Чт июл 18, 2019 09:26:54
MPLAB-X это IDE NetBeans
По этому команды аналогичны.
Читать например тут
https://netbeans.org/kb/73/java/editor- ... ce_ru.htmlАвто дополнение - ALT+Пробел
Чт июл 18, 2019 10:07:59
Спасибо! Только сработало Ctrl+Пробел. Полуавтомат уже лучше, чем совсем ничего.
Чт июл 18, 2019 14:02:08
Да , CTRL + Space - набираю автоматом сейчас специально посмотрел, что пальцы нажимают....
Чт июл 18, 2019 15:46:00
Еще вопрос по симулятору. Оптимизация 0 стоит в настройках компилятора. Ставлю точку остановки, она активна. Но при запуске симулятора ее изображение выглядит разбитым и в дебаг консоли выдает ошибку Break point at line 155 in file .... cannot be resolved to a valid program memory address
Судя по запросам в интернете - ошибка распространенная. Решения пока не нашел. Watcdog не активен. Да и не знаю, влияет он или нет
Чт июл 18, 2019 16:20:26
Еще вопрос по симулятору
Стоит привести фрагмент кода с указанием места брекпойнта. А так разговор ни о чем.
Пт июл 19, 2019 11:21:13
А так разговор ни о чем.
Согласен с замечанием.
Приведу часть кода.
- Код:
#include <xc.h>
void init(void)
{
ANSEL=0x00; // Analog comparator OFF
WDT_init();
}
//.... и тд.
int main(void)
{
init();
while(1)
{
}
}
Это начальные строки реального кода. Я пробовал ставить брекпоинт на:
1) init();
2) ANSEL=0x00;
3) Пробовал ставить брекпоинт на NOP(); который записывал после init();
Изучал этот хэлп
https://microchipdeveloper.com/mplabx:debugging. Пока не пойму в чем проблема с отказом симулятора
Добавлено after 2 minutes 48 seconds:PS. еще проблема вылезла с нежеланием мплаб Х работать с программатором PICkit2. Программатор самодельный, но собран по оригинальной схеме из даташита. С родным софтом программатора проблем нет
Пт июл 19, 2019 14:22:01
Понятно... Предлагаю открыть в MPLABX листинг дизасма и посмотреть что там сгенерировано на месте init(). Не исключено, что компилятор эту функцию инлайнил. Ноп он мог вообще выкинуть, поскольку это симулятор, как и регистр неподдерживаемой в симуляторе периферии.
ЗЫ. ПИКкит2 в МПЛАБ Х не поддерживается. Вообще не поддерживается (отмечен в списке тулзов красным цветом). С ним только в 8-ку.
Пн июл 22, 2019 09:25:04
Понятно... Предлагаю открыть в MPLABX листинг дизасма и посмотреть что там сгенерировано на месте init().
С дизасмом пока не разбирался. Нет опыта, поэтому потребуется время на изучение.
Не исключено, что компилятор эту функцию инлайнил. Ноп он мог вообще выкинуть, поскольку это симулятор, как и регистр неподдерживаемой в симуляторе периферии.
Хорошо, пусть
init(); он пропустил. Но
ANSEL=0x00; - это прямая запись в регистр и компилятор ее никак не мог игнорировать. Как и симулятор. Я пробовал ставить брекпоинты на подобных строках, где либо изменяется значение регистра, либо изменяется значение переменной. Результат тоже никакой. У меня подозрение, что я неправильно настроил симулятор или что-то недоустановил при установке программы. Возможно какой-то плагин?
Пн июл 22, 2019 13:45:45
С дизасмом пока не разбирался. Нет опыта, поэтому потребуется время на изучение.
Настраиваем свойства проекта:
Правой кнопкой мыши по имени проекта в дереве проектов:
Properties - Левое окно Conf:Loading - ставим галку на Load symbols when programming... - Сохраняем и закрываем окно.
Компилируем.
Получаем листинг:
Window - Debugging - Output - Disassemly Listing File
При работе в дебаге активируем дизасм трассируемый листинг:
После входа в дебаг открываем Window - Debugging - Disassemly
Получаем вот такую картинку:
Вт июл 23, 2019 08:22:30
Получаем вот такую картинку:
Проделал все выше описанное, но на этом моменте вместо упомянутого окна получил
!Source not found, file: <путь к файлу> main.c
Вт июл 23, 2019 08:53:46
А листинг без трассировки получили?
И в дебаге код проходит ПО ШАГАМ через проблемные строки?
Вт июл 23, 2019 09:11:30
А листинг без трассировки получили?
Листинг получил.
И в дебаге код проходит ПО ШАГАМ через проблемные строки?
В дебаге после запуска и нажатия иконки ПАУЗА код вообще по шагам не ходит. Даже курсор не становится на строчку, где произошел останов. Но это я говорю за листинг на СИ. Листнга на Ассемблере после входа в дебаг через Window - Debugging - Disassemly кода нет как у Вас на картинке. Есть только строка с ошибкой
!Source not found, file: <путь к файлу> main.c
Вт июл 23, 2019 09:16:21
А Вы файл исходника в проект включили? Покажите скрин дерева проектов с открытым содержанием папок.
Как вообще Вы создавали файл исходника в проекте?
Вт июл 23, 2019 10:22:03
КРАМ писал(а):Как вообще Вы создавали файл исходника в проекте?
В дереве проектов - правая кнопка мышки - NEW - main.c Создал файл main.
Дополнительные файлы уже подключал. Причем пробовал сейчас прям переделать расположение файлов либо в папке Source Files, либо в корне (физически на диске они в корне проекта в любом случае находятся). Но на отладку это не влияет. Как и на компиляцию файла
Добавлено after 17 minutes 49 seconds:Разобрался. Проблема оказалась в русских буквах в папках, где лежал проект. Переместил проект для проверки в папку Test, которую расположил в корневом каталоге диска и все заработало
Вт июл 23, 2019 10:35:19
Проблема оказалась в русских буквах
Это одна из старейших причин неработоспособности проектов в МПЛАБе. Русские буквы - табу. В любом месте пути к файлу и его имени.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.