Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
18.04.2007, 19:35
|
|
Прописка
Регистрация: 27.06.2005
Адрес: Ленинград
Сообщений: 137
Сказал спасибо: 32
Сказали Спасибо 10 раз(а) в 5 сообщении(ях)
|
Помогите с PIC16F73
Господа профессионалы. Прошу мне помочь. Никогда не писал программы для микроконтроллеров, но ситуация заставила. Имеется PIC16F73. Написал кусок программы. Пробовал скомпелировать. Получил сообщения об ошибках. «Регистр не соответствует подключенному банку данных». Проверяю по справочнику и убеждаюсь что этот регистр соответствует банку. Однако, когда просмотрел окно «Program Memory», заметил что дизассемблированный текст не соответствует исходнику. В исходнике мной указан один регистр, а дизассемблер почему-то указал что стоит другой регистр, из другого банка данных. Данные регистры присутствуют в моем чипе. Пробовал компелировать не из MPLAB, а непосредственно MPASM. Ситуация та же. Тип микросхемы выбран правильно. Просмотрел файл P16F73.INC, подключенный к программе, там адреса и имена регистров присутствуют и соответствуют справочнику. Понимаю что у меня не самая свежая версия MPLAB. Другой пока нет, а скачать через модем не представляется возможным. Кто-нибудь сталкивался с такой проблемой? Может я упустил какие-нибудь настройки?
|
|
|
|
18.04.2007, 20:03
|
|
Вид на жительство
Регистрация: 23.04.2006
Сообщений: 308
Сказал спасибо: 14
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Давай, посмеёмся вместе.
Дело в том, что Мессага даётся для того, чтобы обратить твоё внимание, и только. Эти мессаги легко отключить.
Главное же для тебя сообщение внизу:
"BUILD SUCCEEDED" - значит всё в порядке.
Кстати, в MPLAB легко просмотреть состояние любого регистра, даже ADCON при пошаговой отладке. Для этого совсем не надо смотреть дизассемблер.
Кстати, для выбранного довольно старого МК вобщем-то и нет необходимости ставить самую свежую версию MPLAB. У меня до недавнего времени стояла версия 6.62, вполне устраивала для 84 и 628 Пиков...
А кстати, в чём проблема? Не шьётся МК, неправильно работает код, что собственно смущает?
Юзай Proteus, хорошо помогает в освоении...
|
|
|
|
18.04.2007, 21:39
|
|
Прописка
Регистрация: 22.08.2006
Сообщений: 168
Сказал спасибо: 8
Сказали Спасибо 16 раз(а) в 11 сообщении(ях)
|
Если смущает MPLAB, можно пользоваться сторонними дизассемблерами например встроенными в PIC SIMULATOR IDE, они не грузят нформационными исообщениями, и сами подставляют имена битов. Но я например нарывался не раз, когда после дизассемблирования hex файлов, может нарочно, может по ошибке программиста не правильно выбирались банки регистров (подставлялись не те регистры и биты, и как раз сообщения MPLAB помогали быстро найти ошибку... в вашем коде банк 1 выбирается в строке 0001 командой BSF Status, 5 и соответственно выбирается регистр. Об этом и говорит компилер...
|
|
|
|
19.04.2007, 00:18
|
|
Прописка
Регистрация: 27.06.2005
Адрес: Ленинград
Сообщений: 137
Сказал спасибо: 32
Сказали Спасибо 10 раз(а) в 5 сообщении(ях)
|
Блин. Только сейчас врубился. Стал вручную дизассемблировать HEX-файл и понял что по коду команды нельзя отличить регистр ADCON0 от ADCON1, TRISA от PORTA, и т д. Они имеют одинаковые коды и различие возникает в зависимости от того, какой блок данных подключен. Вот дизассемблер и ставит везде регистры нулевого блока.
В процессор-то программируется нормально, просто хотелось быть уверенным, что заливается то, что я хочу. Думал компелятор работает неверно, в настройках что-то напутано. Это ведь не вся программа, только начало и проверить в железе пока не могу.
Proteus это что такое? Мне сказали что можно обойтись одним MPLABом. Или не так? Просто наша фирма накупила зарядных устройств для автомобильных аккуиуляторов, и там стали гореть микросхемы PIC16C710. Почему горят я понял, схему исправил, а вот уже сгоревшие чипы надо восстанавливать. Пробовал скопировать, а она защищена. Шеф сказал: "Ты электрик, ты и программируй" Вот и приходится учить. Почитал книжку и для отладки выбрал флэш-вариант.
Спасибо большое за помощь. Если еще буду спрашивать, вы уж не откажите.
|
|
|
|
19.04.2007, 14:23
|
|
Прописка
Регистрация: 27.06.2005
Адрес: Ленинград
Сообщений: 137
Сказал спасибо: 32
Сказали Спасибо 10 раз(а) в 5 сообщении(ях)
|
Извините, еще вопросик назрел.
А как в дебуггере симулировать аналоговый вход? А вроде установил для визуализации все интересующие меня входы и выходы, но мне нужно задать изменение уровня сигнала на аналоговом входе. Как это сделать? Может какой-нибудь файл нужно создать табличный, или функцию изменения по времени написать?
|
|
|
|
19.04.2007, 14:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
А вот здесь - уже все... Нужен протеус. Или останавливать в нужных местах отладку и вручную вводить значения в регистры. Не есть удобно.
|
|
|
|
19.04.2007, 20:00
|
|
Вид на жительство
Регистрация: 23.04.2006
Сообщений: 308
Сказал спасибо: 14
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
|
Цитата:
|
Proteus это что такое? Мне сказали что можно обойтись одним MPLABом. Или не так?
|
Половина тем на этом форуме посвящена Proteus, а ты спрашиваешь, что такое. Открой глаза, прояви здоровое любопытство...
В двух словах - это симулятор электронных схем, содержащих МК.
MPLAB - поможет отладить код МК. А вот проверить работу всего устройства - это удобнее в Proteus. Там ничего симулировать не надо, посто подключаешь виртуальный генератор нужной функции...
И даже плату разведёт...
|
|
|
|
20.04.2007, 00:18
|
|
Прописка
Регистрация: 27.06.2005
Адрес: Ленинград
Сообщений: 137
Сказал спасибо: 32
Сказали Спасибо 10 раз(а) в 5 сообщении(ях)
|
Да я бы с радостью проявлял любопытство, да вот работы невпроворот и интернет модемный доступен несколько минут в сутки. Вот допишу, подключусь, отправлю и отключусь. Мне фирма десятичасовую карточку на месяц покупает.
Протеус это круто. Для разработчиков аппаратуры наверное необходимо. Мне всего два раза приходилось платы разводить, на рынке мне посоветовали Пикад 2001. Вроде тоже очень удобно, да и хелп понятный. А сейчас передо мной просто стоит локальная задача восстановить шесть зарядников. Завтра возможно отюойный молоток в руки дадут. Всегда приходится изучать лишь необходимый и достаточный обьем информации. В данный момент смиулировать электросхему необходимости нет.
Большое спасибо за помощь. Все же интернет великая вещь.
|
|
|
|
02.05.2007, 16:48
|
|
Временная регистрация
Регистрация: 29.08.2006
Сообщений: 54
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Прошу помощи!! Вообщем дела такое есть НЕХ для PIC16F877. Пытался получить АSM разными прогами, то что получал обратно в НЕХ выдавало ошибки. Вот сообственно вопрос как это сделать MPlab?? И если кто разбирается в дизассемблировании, попробуйте сделать файл, и потом проверить. Прилепил НЕХ.
Заранее, благодарен.
Прикрепленный файл: 6885163.zip
|
|
|
|
02.05.2007, 18:04
|
|
Прописка
Регистрация: 22.08.2006
Сообщений: 168
Сказал спасибо: 8
Сказали Спасибо 16 раз(а) в 11 сообщении(ях)
|
К сожалению, я сам не раз сталкивался этой проблемой. Дело в том, что в hex файл записывается слово конфигурации или не записывается, а выставляется в программаторе (по желанию разработчика). Обычно ошибка здесь и кроется.. Вытаскиваете из микроконтроллера файл, програмируете - не работает. А попробуйте тоже самое только еще вытащить слово конфигурации.... И введите его в программатор непосредственно....Попробуйте...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:23.
|
|