Как добавить C h файлы с относительными путями ? Что бы при переносе из оной папки проекта в другую, MPLAB открывал файлы проекта куда он был скопирован
Первый раз попробовал написать программу для микроконтроллеров 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?
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
-=Vovka=-, я этот хидер чисто случайно нашел. А так я устал разворачивать xc.h в поисках нужных файлов. Жутко неудобно. Проще было найти поиском в самой папке компилятора XC8. Остался пока непонятный момент с авто подстановкой. Неужели ее совсем нет? Это же жутко неудобно помнить все назначаемые имена переменных и функций
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Спасибо! Только сработало Ctrl+Пробел. Полуавтомат уже лучше, чем совсем ничего.
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Еще вопрос по симулятору. Оптимизация 0 стоит в настройках компилятора. Ставлю точку остановки, она активна. Но при запуске симулятора ее изображение выглядит разбитым и в дебаг консоли выдает ошибку Break point at line 155 in file .... cannot be resolved to a valid program memory address Судя по запросам в интернете - ошибка распространенная. Решения пока не нашел. Watcdog не активен. Да и не знаю, влияет он или нет
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
void init(void) { ANSEL=0x00; // Analog comparator OFF WDT_init(); } //.... и тд.
int main(void) { init();
while(1) { } }
Это начальные строки реального кода. Я пробовал ставить брекпоинт на: 1) init(); 2) ANSEL=0x00; 3) Пробовал ставить брекпоинт на NOP(); который записывал после init();
Добавлено after 2 minutes 48 seconds: PS. еще проблема вылезла с нежеланием мплаб Х работать с программатором PICkit2. Программатор самодельный, но собран по оригинальной схеме из даташита. С родным софтом программатора проблем нет
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Понятно... Предлагаю открыть в MPLABX листинг дизасма и посмотреть что там сгенерировано на месте init(). Не исключено, что компилятор эту функцию инлайнил. Ноп он мог вообще выкинуть, поскольку это симулятор, как и регистр неподдерживаемой в симуляторе периферии. ЗЫ. ПИКкит2 в МПЛАБ Х не поддерживается. Вообще не поддерживается (отмечен в списке тулзов красным цветом). С ним только в 8-ку.
Не исключено, что компилятор эту функцию инлайнил. Ноп он мог вообще выкинуть, поскольку это симулятор, как и регистр неподдерживаемой в симуляторе периферии.
Хорошо, пусть init(); он пропустил. Но ANSEL=0x00; - это прямая запись в регистр и компилятор ее никак не мог игнорировать. Как и симулятор. Я пробовал ставить брекпоинты на подобных строках, где либо изменяется значение регистра, либо изменяется значение переменной. Результат тоже никакой. У меня подозрение, что я неправильно настроил симулятор или что-то недоустановил при установке программы. Возможно какой-то плагин?
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
С дизасмом пока не разбирался. Нет опыта, поэтому потребуется время на изучение.
Настраиваем свойства проекта: Правой кнопкой мыши по имени проекта в дереве проектов: Properties - Левое окно Conf:Loading - ставим галку на Load symbols when programming... - Сохраняем и закрываем окно. Компилируем. Получаем листинг: Window - Debugging - Output - Disassemly Listing File При работе в дебаге активируем дизасм трассируемый листинг: После входа в дебаг открываем Window - Debugging - Disassemly Получаем вот такую картинку:
Проделал все выше описанное, но на этом моменте вместо упомянутого окна получил !Source not found, file: <путь к файлу> main.c
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
И в дебаге код проходит ПО ШАГАМ через проблемные строки?
В дебаге после запуска и нажатия иконки ПАУЗА код вообще по шагам не ходит. Даже курсор не становится на строчку, где произошел останов. Но это я говорю за листинг на СИ. Листнга на Ассемблере после входа в дебаг через Window - Debugging - Disassemly кода нет как у Вас на картинке. Есть только строка с ошибкой !Source not found, file: <путь к файлу> main.c
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
В дереве проектов - правая кнопка мышки - NEW - main.c Создал файл main. Дополнительные файлы уже подключал. Причем пробовал сейчас прям переделать расположение файлов либо в папке Source Files, либо в корне (физически на диске они в корне проекта в любом случае находятся). Но на отладку это не влияет. Как и на компиляцию файла
Добавлено after 17 minutes 49 seconds: Разобрался. Проблема оказалась в русских буквах в папках, где лежал проект. Переместил проект для проверки в папку Test, которую расположил в корневом каталоге диска и все заработало
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения