Свежие обсуждения
Микроконтроллеры

Ликбез по программированию PIC

1 92 99

gentleangel: Вообще впечатление, что вы не смотрели мой код
Посмотрел. Потом закрыл. Потом вспомнил, но не захотел снова идти, качать файл...
Вобще я сейчас перешел на Си, поэтому не запоминаю что, где и в каком бите у какого камня. Просто пишу "разрешить прерывания"

 

Возникла проблема с MPLAB. Не знаю по какой причине, но с некоторых пор при компиляции asm файла MPLAB перестал создавать HEX файл. Целый день проковырялся в настройках, так и не добился результата.
MPLAB IDE v8.86, ОС Windows 7. Точки восстановления винды нет, откатить не получилось. Переустановить софт с нуля тоже не вышло,хотя старался удалять всё под чистую, с применением нескольких хвалёных утилит для чистки реестра.
Среду ставил на диск с п умолчанию. Папки проекта (полностью по пути) только в латинице.
В общем то всё работало, а потом перестало. При чём, возможно я заметил это далеко не сразу.
Компиляция заведомо рабочего проекта дает в общем-то положительный результат, но без файла HEX. Вот лог результата:

----------------------------------------------------------------------
Debug build of project `D:\PIC\BASE\waitmultivib.mcp' started.
Language tool versions: MPASMWIN.exe v5.46, mplink.exe v4.44, mplib.exe v4.44
Preprocessor symbol `__DEBUG' is defined.
Tue Sep 18 00:47:17 2012
----------------------------------------------------------------------
Make: The target "D:\PIC\BASE\Waitmultivib.o" is out of date.
Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F628A "Waitmultivib.asm" /l"Waitmultivib.lst" /e"Waitmultivib.err" /d__DEBUG=1 /c-
Message[302] D:\PIC\BASE\WAITMULTIVIB.ASM 60 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] D:\PIC\BASE\WAITMULTIVIB.ASM 70 : Register in operand not in bank 0. Ensure that bank bits are correct.
Make: The target "D:\PIC\BASE\Waitmultivib.cof" is out of date.
Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\mplink.exe" /p16F628A "Waitmultivib.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /m"Waitmultivib.map" /w /o"Waitmultivib.cof" /x
MPLINK 4.43, Linker
Device Database Version 1.9
Copyright (c) 1998-2011 Microchip Technology Inc.
Errors : 0

Loaded D:\PIC\BASE\Waitmultivib.cof.
----------------------------------------------------------------------
Debug build of project `D:\PIC\BASE\waitmultivib.mcp' succeeded.
Language tool versions: MPASMWIN.exe v5.46, mplink.exe v4.44, mplib.exe v4.44
Preprocessor symbol `__DEBUG' is defined.
Tue Sep 18 00:47:29 2012
----------------------------------------------------------------------
BUILD SUCCEEDED
=======================================
Подскажите пожалуйста, может кто сможет здесь какой косяк найти, и что сделать, что бы заработало? Мож компилятор какой не тот подключился...

 

Не пробовали поиск по: waitmultivib.hex ? Вроде бы ошибок не пишет и компилит нормально, значит и хекс должен создавать. Возможно путь к хекс задан кривой...

 

Исправил, только толком не понял как. Вот, что знаю:
До этого я создал проект с точкой до расширения в имени, а конкретно - ver1.1
Этот проект, а в дальнейшем и заведомо рабочие уже не генерились в файл HEX
Что сделал:
Создал через Project Wizard... новый проект с именем без точки (Goshan001) до расширения.
Открыл файл ver1.1.asm и переименовал его в Goshan001.asm, затем добавил в проект. Добавил ещё файлик inc нужного контроллера, и вуа-ля, появился файлик Goshan001.hex.
Для верности несколько раз удалил hex файл и повторил компиляцию. Создаёт успешно.
Так и не понял логику бага, в который я загнал MPLAB, но слава Богу, проблема ушла. Может кому будет полезно...

 

Splav56: Не пробовали поиск по: waitmultivib.hex ? Вроде бы ошибок не пишет и компилит нормально, значит и хекс должен создавать. Возможно путь к хекс задан кривой...
Поискал на всех дисках - неа, не нашёл...Не создавал он их, получается.

 

Если такого как я описал быть не должно, значит дело скорей всего было так:
Ковырялся в настройках и поставил (убрал) в непонятном месте лишнюю галку.
Долго искал, в чём проблема, и случайно убрал (поставил) в непонятном месте лишнюю галку.
Где эта галка, так и не понял, но результатом удовлетворён и далее спокойно, но с большей осторожностью работаю в среде...

 

gentleangel: Создал через Project Wizard
MPLAB запоминает в проекте в каком месте лежали файлы, если перенести проект в другую папку, то файлы он будет брать из старой. Возможно в ней и будут появляться свежие .hex файлы.

 

Сергей К: MPLAB запоминает в проекте в каком месте лежали файлы, если перенести проект в другую папку, то файлы он будет брать из старой. Возможно в ней и будут появляться свежие .hex файлы.
Проекты не переносил. Если и менял каталог, то создавался новый проект. При проблеме искал файлы по всем дискам начиная с корня - ни чего не находилось.

 

Всем привет! Наконец то удосужился оформить свой первый (и пока последний) опыт работы с микроконтроллером PIC. Фишка простая - на предприятии вышел из строя робот-тренажёр для тренировки персонала по оказанию первой помощи. Он прост до безобразия. Механическая конструкция начинённая датчиками и контактами, формирующими дискретные сигналы. Помимо того, что робот вышел из строя, логика работы его схемы устарела и перестала соответствовать требованиям новой инструкции по оказанию первой доврачебной помощи. Начальство поставило задачу апгрейдить "пацана" своими силами. Пара месяцев изучения нужных функций микроконтроллера PIC16F628, пара месяцев экспериментов и наладки, и вот что, собственно, получилось на выходе (в порядке публикации):
вводная статейка - http://volt-info.ru/reanimaciya-goshi
схема электрическая - http://volt-info.ru/elektronnyy-mozg-goshi
архив с файлами для симуляции проекта Гоши и инструкция по эксплуатации - http://volt-info.ru/programmnaya-razrabotka-goshinyh-mozgov
и в довесок - печатная плата - http://volt-info.ru/pechatnaya-plata-goshinoy-dushi

 

Если кому интересно, зацените, какая игрушка получилась. У нас народу понравилась, намного хитрей стал работать, чем заводская версия. Правда в отличие от завода нет возможности подключить к компу, но за то реализована запись результата действий при тренировке и экзамене с выводом отчёта на панели управления. В полевых условиях удобно, не нужно ни чего таскать с собой для подключения, ни ноута, ни компа...