MPLAB X IDE
Re: MPLAB X IDE
Как добавить C h файлы с относительными путями ? Что бы при переносе из оной папки проекта в другую, MPLAB открывал файлы проекта куда он был скопирован
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: MPLAB X IDE
При добавлении есть такой выбор. Смотрите в окне выбора файла.
Re: MPLAB X IDE
Первый раз попробовал написать программу для микроконтроллеров 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?
Скачал 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
2. в *.h-файле с именем как у микроконтроллера есть все define
На мой взгляд лучше использовать кодировку windows-1251
На мой взгляд лучше использовать кодировку windows-1251
Re: MPLAB X IDE
-=Vovka=-, я этот хидер чисто случайно нашел. А так я устал разворачивать xc.h в поисках нужных файлов. Жутко неудобно. Проще было найти поиском в самой папке компилятора XC8.
Остался пока непонятный момент с авто подстановкой. Неужели ее совсем нет? Это же жутко неудобно помнить все назначаемые имена переменных и функций
Остался пока непонятный момент с авто подстановкой. Неужели ее совсем нет? Это же жутко неудобно помнить все назначаемые имена переменных и функций
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
-
driver_gv
- Потрогал лапой паяльник
- Сообщения: 399
- Зарегистрирован: Сб авг 08, 2009 23:02:57
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: MPLAB X IDE
MPLAB-X это IDE NetBeans
По этому команды аналогичны.
Читать например тут https://netbeans.org/kb/73/java/editor- ... ce_ru.html
Авто дополнение - ALT+Пробел
По этому команды аналогичны.
Читать например тут https://netbeans.org/kb/73/java/editor- ... ce_ru.html
Авто дополнение - ALT+Пробел
__________________
Все, что нельзя запрограммировать на ассемблере, приходится паять
Все, что нельзя запрограммировать на ассемблере, приходится паять
Re: MPLAB X IDE
[uquote="driver_gv",url="/forum/viewtopic.php?p=3668066#p3668066"]Читать например тут https://netbeans.org/kb/73/java/editor- ... ce_ru.html
Авто дополнение - ALT+Пробел[/uquote]
Спасибо! Только сработало Ctrl+Пробел. Полуавтомат уже лучше, чем совсем ничего.
Авто дополнение - ALT+Пробел[/uquote]
Спасибо! Только сработало Ctrl+Пробел. Полуавтомат уже лучше, чем совсем ничего.
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
-
driver_gv
- Потрогал лапой паяльник
- Сообщения: 399
- Зарегистрирован: Сб авг 08, 2009 23:02:57
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: MPLAB X IDE
Да , CTRL + Space - набираю автоматом сейчас специально посмотрел, что пальцы нажимают....
__________________
Все, что нельзя запрограммировать на ассемблере, приходится паять
Все, что нельзя запрограммировать на ассемблере, приходится паять
Re: MPLAB X IDE
Еще вопрос по симулятору. Оптимизация 0 стоит в настройках компилятора. Ставлю точку остановки, она активна. Но при запуске симулятора ее изображение выглядит разбитым и в дебаг консоли выдает ошибку Break point at line 155 in file .... cannot be resolved to a valid program memory address
Судя по запросам в интернете - ошибка распространенная. Решения пока не нашел. Watcdog не активен. Да и не знаю, влияет он или нет
Судя по запросам в интернете - ошибка распространенная. Решения пока не нашел. Watcdog не активен. Да и не знаю, влияет он или нет
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- КРАМ
- Друг Кота
- Сообщения: 25204
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: MPLAB X IDE
[uquote="serg_svd",url="/forum/viewtopic.php?p=3668317#p3668317"]Еще вопрос по симулятору[/uquote]
Стоит привести фрагмент кода с указанием места брекпойнта. А так разговор ни о чем.
Стоит привести фрагмент кода с указанием места брекпойнта. А так разговор ни о чем.
Re: MPLAB X IDE
[uquote="КРАМ",url="/forum/viewtopic.php?p=3668331#p3668331"]А так разговор ни о чем.[/uquote]
Согласен с замечанием.
Приведу часть кода.
Это начальные строки реального кода. Я пробовал ставить брекпоинт на:
1) init();
2) ANSEL=0x00;
3) Пробовал ставить брекпоинт на NOP(); который записывал после init();
Изучал этот хэлп https://microchipdeveloper.com/mplabx:debugging. Пока не пойму в чем проблема с отказом симулятора
Добавлено after 2 minutes 48 seconds:
PS. еще проблема вылезла с нежеланием мплаб Х работать с программатором PICkit2. Программатор самодельный, но собран по оригинальной схеме из даташита. С родным софтом программатора проблем нет
Согласен с замечанием.
Приведу часть кода.
Код: Выделить всё
#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. Программатор самодельный, но собран по оригинальной схеме из даташита. С родным софтом программатора проблем нет
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- КРАМ
- Друг Кота
- Сообщения: 25204
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: MPLAB X IDE
Понятно... Предлагаю открыть в MPLABX листинг дизасма и посмотреть что там сгенерировано на месте init(). Не исключено, что компилятор эту функцию инлайнил. Ноп он мог вообще выкинуть, поскольку это симулятор, как и регистр неподдерживаемой в симуляторе периферии.
ЗЫ. ПИКкит2 в МПЛАБ Х не поддерживается. Вообще не поддерживается (отмечен в списке тулзов красным цветом). С ним только в 8-ку.
ЗЫ. ПИКкит2 в МПЛАБ Х не поддерживается. Вообще не поддерживается (отмечен в списке тулзов красным цветом). С ним только в 8-ку.
Re: MPLAB X IDE
[uquote="КРАМ",url="/forum/viewtopic.php?p=3668841#p3668841"]Понятно... Предлагаю открыть в MPLABX листинг дизасма и посмотреть что там сгенерировано на месте init().[/uquote]
С дизасмом пока не разбирался. Нет опыта, поэтому потребуется время на изучение.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3668841#p3668841"]Не исключено, что компилятор эту функцию инлайнил. Ноп он мог вообще выкинуть, поскольку это симулятор, как и регистр неподдерживаемой в симуляторе периферии.[/uquote]
Хорошо, пусть init(); он пропустил. Но ANSEL=0x00; - это прямая запись в регистр и компилятор ее никак не мог игнорировать. Как и симулятор. Я пробовал ставить брекпоинты на подобных строках, где либо изменяется значение регистра, либо изменяется значение переменной. Результат тоже никакой. У меня подозрение, что я неправильно настроил симулятор или что-то недоустановил при установке программы. Возможно какой-то плагин?
С дизасмом пока не разбирался. Нет опыта, поэтому потребуется время на изучение.
[uquote="КРАМ",url="/forum/viewtopic.php?p=3668841#p3668841"]Не исключено, что компилятор эту функцию инлайнил. Ноп он мог вообще выкинуть, поскольку это симулятор, как и регистр неподдерживаемой в симуляторе периферии.[/uquote]
Хорошо, пусть init(); он пропустил. Но ANSEL=0x00; - это прямая запись в регистр и компилятор ее никак не мог игнорировать. Как и симулятор. Я пробовал ставить брекпоинты на подобных строках, где либо изменяется значение регистра, либо изменяется значение переменной. Результат тоже никакой. У меня подозрение, что я неправильно настроил симулятор или что-то недоустановил при установке программы. Возможно какой-то плагин?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- КРАМ
- Друг Кота
- Сообщения: 25204
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: MPLAB X IDE
[uquote="serg_svd",url="/forum/viewtopic.php?p=3670086#p3670086"]С дизасмом пока не разбирался. Нет опыта, поэтому потребуется время на изучение.[/uquote]
Настраиваем свойства проекта:
Правой кнопкой мыши по имени проекта в дереве проектов:
Properties - Левое окно Conf:Loading - ставим галку на Load symbols when programming... - Сохраняем и закрываем окно.
Компилируем.
Получаем листинг:
Window - Debugging - Output - Disassemly Listing File
При работе в дебаге активируем дизасм трассируемый листинг:
После входа в дебаг открываем Window - Debugging - Disassemly
Получаем вот такую картинку:

Настраиваем свойства проекта:
Правой кнопкой мыши по имени проекта в дереве проектов:
Properties - Левое окно Conf:Loading - ставим галку на Load symbols when programming... - Сохраняем и закрываем окно.
Компилируем.
Получаем листинг:
Window - Debugging - Output - Disassemly Listing File
При работе в дебаге активируем дизасм трассируемый листинг:
После входа в дебаг открываем Window - Debugging - Disassemly
Получаем вот такую картинку:
Re: MPLAB X IDE
[uquote="КРАМ",url="/forum/viewtopic.php?p=3670220#p3670220"]Получаем вот такую картинку:[/uquote]
Проделал все выше описанное, но на этом моменте вместо упомянутого окна получил
!Source not found, file: <путь к файлу> main.c
Проделал все выше описанное, но на этом моменте вместо упомянутого окна получил
!Source not found, file: <путь к файлу> main.c
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- КРАМ
- Друг Кота
- Сообщения: 25204
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: MPLAB X IDE
А листинг без трассировки получили?
И в дебаге код проходит ПО ШАГАМ через проблемные строки?
И в дебаге код проходит ПО ШАГАМ через проблемные строки?
Re: MPLAB X IDE
[uquote="КРАМ",url="/forum/viewtopic.php?p=3670550#p3670550"]А листинг без трассировки получили?[/uquote]
Листинг получил.
Листинг получил.
В дебаге после запуска и нажатия иконки ПАУЗА код вообще по шагам не ходит. Даже курсор не становится на строчку, где произошел останов. Но это я говорю за листинг на СИ. Листнга на Ассемблере после входа в дебаг через Window - Debugging - Disassemly кода нет как у Вас на картинке. Есть только строка с ошибкой !Source not found, file: <путь к файлу> main.cИ в дебаге код проходит ПО ШАГАМ через проблемные строки?
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- КРАМ
- Друг Кота
- Сообщения: 25204
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: MPLAB X IDE
А Вы файл исходника в проект включили? Покажите скрин дерева проектов с открытым содержанием папок.
Как вообще Вы создавали файл исходника в проекте?
Как вообще Вы создавали файл исходника в проекте?
Re: MPLAB X IDE
В дереве проектов - правая кнопка мышки - NEW - main.c Создал файл main.КРАМ писал(а):Как вообще Вы создавали файл исходника в проекте?
Дополнительные файлы уже подключал. Причем пробовал сейчас прям переделать расположение файлов либо в папке Source Files, либо в корне (физически на диске они в корне проекта в любом случае находятся). Но на отладку это не влияет. Как и на компиляцию файла
Добавлено after 17 minutes 49 seconds:
Разобрался. Проблема оказалась в русских буквах в папках, где лежал проект. Переместил проект для проверки в папку Test, которую расположил в корневом каталоге диска и все заработало
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
- КРАМ
- Друг Кота
- Сообщения: 25204
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: MPLAB X IDE
[uquote="serg_svd",url="/forum/viewtopic.php?p=3670582#p3670582"]Проблема оказалась в русских буквах[/uquote]
Это одна из старейших причин неработоспособности проектов в МПЛАБе. Русские буквы - табу. В любом месте пути к файлу и его имени.
Это одна из старейших причин неработоспособности проектов в МПЛАБе. Русские буквы - табу. В любом месте пути к файлу и его имени.