Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Re: MPLAB X IDE

Пт авг 31, 2018 08:10:41

Как добавить C h файлы с относительными путями ? Что бы при переносе из оной папки проекта в другую, MPLAB открывал файлы проекта куда он был скопирован

Re: MPLAB X IDE

Пт авг 31, 2018 08:17:21

При добавлении есть такой выбор. Смотрите в окне выбора файла.

Re: MPLAB X IDE

Ср июл 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?

Re: MPLAB X IDE

Чт июл 18, 2019 05:47:18

2. в *.h-файле с именем как у микроконтроллера есть все define

На мой взгляд лучше использовать кодировку windows-1251

Re: MPLAB X IDE

Чт июл 18, 2019 08:57:18

-=Vovka=-, я этот хидер чисто случайно нашел. А так я устал разворачивать xc.h в поисках нужных файлов. Жутко неудобно. Проще было найти поиском в самой папке компилятора XC8.
Остался пока непонятный момент с авто подстановкой. Неужели ее совсем нет? Это же жутко неудобно помнить все назначаемые имена переменных и функций

Re: MPLAB X IDE

Чт июл 18, 2019 09:26:54

MPLAB-X это IDE NetBeans
По этому команды аналогичны.
Читать например тут https://netbeans.org/kb/73/java/editor- ... ce_ru.html
Авто дополнение - ALT+Пробел

Re: MPLAB X IDE

Чт июл 18, 2019 10:07:59

Читать например тут https://netbeans.org/kb/73/java/editor- ... ce_ru.html
Авто дополнение - ALT+Пробел

Спасибо! Только сработало Ctrl+Пробел. Полуавтомат уже лучше, чем совсем ничего.

Re: MPLAB X IDE

Чт июл 18, 2019 14:02:08

Да , CTRL + Space - набираю автоматом сейчас специально посмотрел, что пальцы нажимают....

Re: MPLAB X IDE

Чт июл 18, 2019 15:46:00

Еще вопрос по симулятору. Оптимизация 0 стоит в настройках компилятора. Ставлю точку остановки, она активна. Но при запуске симулятора ее изображение выглядит разбитым и в дебаг консоли выдает ошибку Break point at line 155 in file .... cannot be resolved to a valid program memory address
Судя по запросам в интернете - ошибка распространенная. Решения пока не нашел. Watcdog не активен. Да и не знаю, влияет он или нет

Re: MPLAB X IDE

Чт июл 18, 2019 16:20:26

Еще вопрос по симулятору

Стоит привести фрагмент кода с указанием места брекпойнта. А так разговор ни о чем.

Re: MPLAB X IDE

Пт июл 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. Программатор самодельный, но собран по оригинальной схеме из даташита. С родным софтом программатора проблем нет

Re: MPLAB X IDE

Пт июл 19, 2019 14:22:01

Понятно... Предлагаю открыть в MPLABX листинг дизасма и посмотреть что там сгенерировано на месте init(). Не исключено, что компилятор эту функцию инлайнил. Ноп он мог вообще выкинуть, поскольку это симулятор, как и регистр неподдерживаемой в симуляторе периферии.
ЗЫ. ПИКкит2 в МПЛАБ Х не поддерживается. Вообще не поддерживается (отмечен в списке тулзов красным цветом). С ним только в 8-ку.

Re: MPLAB X IDE

Пн июл 22, 2019 09:25:04

Понятно... Предлагаю открыть в MPLABX листинг дизасма и посмотреть что там сгенерировано на месте init().

С дизасмом пока не разбирался. Нет опыта, поэтому потребуется время на изучение.

Не исключено, что компилятор эту функцию инлайнил. Ноп он мог вообще выкинуть, поскольку это симулятор, как и регистр неподдерживаемой в симуляторе периферии.

Хорошо, пусть init(); он пропустил. Но ANSEL=0x00; - это прямая запись в регистр и компилятор ее никак не мог игнорировать. Как и симулятор. Я пробовал ставить брекпоинты на подобных строках, где либо изменяется значение регистра, либо изменяется значение переменной. Результат тоже никакой. У меня подозрение, что я неправильно настроил симулятор или что-то недоустановил при установке программы. Возможно какой-то плагин?

Re: MPLAB X IDE

Пн июл 22, 2019 13:45:45

С дизасмом пока не разбирался. Нет опыта, поэтому потребуется время на изучение.

Настраиваем свойства проекта:
Правой кнопкой мыши по имени проекта в дереве проектов:
Properties - Левое окно Conf:Loading - ставим галку на Load symbols when programming... - Сохраняем и закрываем окно.
Компилируем.
Получаем листинг:
Window - Debugging - Output - Disassemly Listing File
При работе в дебаге активируем дизасм трассируемый листинг:
После входа в дебаг открываем Window - Debugging - Disassemly
Получаем вот такую картинку:
Изображение

Re: MPLAB X IDE

Вт июл 23, 2019 08:22:30

Получаем вот такую картинку:

Проделал все выше описанное, но на этом моменте вместо упомянутого окна получил
!Source not found, file: <путь к файлу> main.c

Re: MPLAB X IDE

Вт июл 23, 2019 08:53:46

А листинг без трассировки получили?
И в дебаге код проходит ПО ШАГАМ через проблемные строки?

Re: MPLAB X IDE

Вт июл 23, 2019 09:11:30

А листинг без трассировки получили?

Листинг получил.
И в дебаге код проходит ПО ШАГАМ через проблемные строки?

В дебаге после запуска и нажатия иконки ПАУЗА код вообще по шагам не ходит. Даже курсор не становится на строчку, где произошел останов. Но это я говорю за листинг на СИ. Листнга на Ассемблере после входа в дебаг через Window - Debugging - Disassemly кода нет как у Вас на картинке. Есть только строка с ошибкой !Source not found, file: <путь к файлу> main.c

Re: MPLAB X IDE

Вт июл 23, 2019 09:16:21

А Вы файл исходника в проект включили? Покажите скрин дерева проектов с открытым содержанием папок.
Как вообще Вы создавали файл исходника в проекте?

Re: MPLAB X IDE

Вт июл 23, 2019 10:22:03

Изображение
КРАМ писал(а):Как вообще Вы создавали файл исходника в проекте?

В дереве проектов - правая кнопка мышки - NEW - main.c Создал файл main.
Дополнительные файлы уже подключал. Причем пробовал сейчас прям переделать расположение файлов либо в папке Source Files, либо в корне (физически на диске они в корне проекта в любом случае находятся). Но на отладку это не влияет. Как и на компиляцию файла

Добавлено after 17 minutes 49 seconds:
Разобрался. Проблема оказалась в русских буквах в папках, где лежал проект. Переместил проект для проверки в папку Test, которую расположил в корневом каталоге диска и все заработало

Re: MPLAB X IDE

Вт июл 23, 2019 10:35:19

Проблема оказалась в русских буквах

Это одна из старейших причин неработоспособности проектов в МПЛАБе. Русские буквы - табу. В любом месте пути к файлу и его имени.
Ответить