Всем привет! Я AVRшик, а PICи видел только припаянные к плате, но жизнь заставила разобраться с устройством на PIC контроллере. Дали мне HEX файл и все. Я его деассемблировал и начал изучать. Естественно ASM AVR отличается от ASM PIC. Отсюда встал вопрос изучения этого дела. Поставил MPLAB X, купил для мучений PIC16F877A, собрал схему на макетке в виде МК + кварц на 8МГц с двумя капаситорами на 22р от кварца на GND и светодиод от RC3 через резюк на GND. Программатор PicKit3. Ну вроде бы как все должно быть комильфо, но... Накидал такой код.
Все скомпилилось без ошибок, но светодиод не горит, а на RC3 сидит 0,53в как на всех остальных ногах. Как я понял из 0 в 1 я так и не перешел. Вопрос. В чем может быть проблема? Смущает регистр STATUS. Когда я сбрасываю третий разряд в регистре TRISC для перевода пина на выход, мне нужно перейти в банк1. Собственно в регистре STATUS я это и делаю выставляя RP0 в единицу, а вот когда мне нужно перебраться в банк 0... Регистр STATUS присутствует во всех банках но имеет разный адрес 0x0003, 0x0083, 0x0103, 0x0183. Здесь и сомнения, он сквозной для всех банков или нужно при переходе из одного банка в другой задавать изменения в текущем банке. Я уже запутался. Как мне зажечь светодиод, я уже не говорю о мигании.
Во-первых, на ресет надо повесить подтяжку. Оригинальный ДШ на стр. 148. Во-вторых, не надо расписывать адреса регистров. Нужно только в начале исходника написать include p16f877a.inc В-третьих, чтобы не мучиться с комбинациями битов для выбора банка, можно писать, скажем,
Код:
banksel TRISC bcf TRISC,3
Препроцессор потом заменит banksel на нужную комбинацию битов в регистре STATUS, который, как вы верно заметили, "сквозной" во всех банках. А можно и свои макросы использовать, типа таких: Спойлер
А вообще желательно инициалищировать всю периферию, она может влиять (и влияет) на работу портов. В случае RC3 вроде ничего нет, но для проверять нужно. В конце каждого раздела в мануалах написано, какие регистры и биты в них играют роль в данном разделе (SUMMARY OF REGISTERS ASSOCIATED WITH xxx).
Добавлено after 6 minutes 54 seconds: Забыл еще один момент: конфиг-биты пишите в таком виде:
Их список в том же inc файле, но средствами МПлаба можно это автоматизировать. Для этого в меню выбираете Window - PIC memory views - Configuration Bits. В нем выставляете нужное, потом жмете Generate Sorce Code, копируете и вставляете в исходник.
_________________ Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Уже пробовал, пишет что такой файл не найден. Поэтому расписывал все вручную. У меня по ходу что-то в железе, а что не могу понять. В протеусе работает, а на железе нет, хотя MPLAB пишет что все залил и верификация прошла удачно.
Цитата:
Оригинальный ДШ на стр. 148.
Хотят резистор не более 40К, поставил на 20К. Теперь MPLAB перестала видеть МК.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Ну не дурак. Чай AVR рограммирую, там та же песня.
Цитата:
Window - PIC memory views - Configuration Bits
Вот это тема. Он сам мне все сделал.
Цитата:
10k прямо на MCLR
Не помогает. Причем если отсоединяю программатор и запитываю от внешнего источника, то светодиод промаргивает один раз.
Добавлено after 22 minutes 51 second: Все, разобрался. В конфигурационном регистре нужно вместо _FOSC_XT поставить _FOSC_HS, тем самым разрешить работу быстрых кварцев. Очень напоминает фьюз биты в Мегах)))
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения