• Объявления

    • admin

      Просьба всем принять участие!   24.11.2017

      На форуме разыгрывается спектроанализатор Arinst SSA-TG LC (цена 18500 руб). Просьба всем перейти по ссылке ниже и принять участие!

2 251 сообщение в этой теме

my504    166

Длину импульса измеряют с помощью модуля CCP.

Определяют фронт захвата и по прерыванию от ССР читают два значения таймера 1 в момент захвата. Из второго значения вычитают первое и, если разность отрицательна (произошло переполнение счетчика между захватами), находят модуль результата (побитная инверсия +1).

Использование входа прерывания сопряжено в ошибкой из-за задержки входа в прерывание (латентность прерывания), а так же достаточно нестабильной задержкой при проверке флагов в самом прерывании.

ЗЫ. Ваш код я не понял. Во первых, это все обработчик прерываний? Почему нет заголовка функции?

Во вторых, что это за двойная проверка флага? Вы же его сбросили в первом IF { }.

В общем, чушь какая то....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00

Добрый день.

Имею некоторый успешный опыт программирования МК PIC на ассемблере. Сейчас возникла необходимость освоить Си. Был выбран компилятор CCS C compiler, который имеет как собственную среду разработки, так и может быть встроен в MPLAB.

Для начала было решено попробовать создать простой проект в CCS среде, все хорошо, все работает. Но! Когда тот же самый код (скопированы и заменены файлы main.c и main.h) был перенесен в папку с проектом MPLAB, проект скомпилирован в MPLAB и залит на плату EasyPic, он перестал работать.

И так с любым проектом: скомпилирован из-под среды CCS C compiler - работает, из-по MPLAB - не работает.

Умом-то я понимаю, что, скорее всего, дело в слове конфигурации и уже прописал его вручную в проекте как

#fuses HS,NOWDT,NOPUT,BROWNOUT,NOLVP,NOCPD,NOWRT,NODEBUG,NOPROTECT

но ситуация не изменилась.

В чем может быть проблема? Что еще такого незаметно делает CCS компилятор при создании hex-файла, чего не делает MPLAB?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525

Сравните командные строки, передаваемые IDE компилятору. Возможно, MPLAB что-нибудь включает, типа оптимизации, из-за чего программа становится неработоспособной.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Mic    0

Подскажите, пожалуйста, у какого 18- pin контроллера кварц 4 мГц подключается к 12 и 13 ногам? Сколько ни искал- ничего не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 100

давайте я угадаю ПЫХ16Ф628

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
HaOS    0

Доброго времени, Уважаемые.

Для одного проекта был куплен Pickit3 и мк PIC10F320. Установлен MPLAB IDE 8.92.

Всё работает, кроме одного - я не могу (или неправильно делаю) сделать защиту от считывания прошивки.

Подключаю программатор с подсоединенным пиком, запускаю программу, настраиваю коннект по букварю, импортирую прошивку, в Configuration Bits снимаю галочку, соглашаюсь с предупреждением, включаю Code Protection, прошиваю ПИК. Всё отключаю, перезапускаю, и считываю прошивку. При сравнении прошивок "до" и "после" видно, что некоторые биты изменены. НО прошивка нормально считывается. Что я делаю не так, или что не делаю? Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525

Установите биты конфигурации в самом коде, они будут импортированы в hex-файл. Просто неизвестно, что Вы там можете не так делать. А тут вариант будет уже стопроцентный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    590

Если биты защиты кода стоят, т.е. прошиты то у вас не получилось бы вообще прочитать прошивку! Читались бы все нули... может, биты конфигурации у вас не прошиты и программатор не трогает их при прошивке?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
HaOS    0

Вот 2 файла, которые получаются в результате включения СР....

P.S. До этого пользовался самыми простыми программаторами и оболочками (PonyProg, IC-Prog...)

test.rar

Изменено пользователем HaOS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
otest    26

Конфигурация в последней строке у обоих 3FFF,

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
HaOS    0

Тогда подскажите, что делает операция на скриншотах?

И как изменить конфигурацию в коде?

Спасибо.

post-41741-0-90580900-1459170533_thumb.jpg

post-41741-0-44626900-1459170542_thumb.jpg

Изменено пользователем HaOS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525

А установленная галочка и надпись рядом с ней ни о чём не говорят ? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
HaOS    0

Мои действия: я импортирую файл unlock, открываю Configuration Bits, снимаю галочку, меняю СР на enabled, ставлю галочку, экспортирую файл с именем lock. Я понимаю, что MPLAB сама все делает? Если нет, то что делает вышеописанная операция?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 100

именно то что и ожидается... установка бита защиты от чтения...

а вот установится он , когда проект вы собирете проект как релайз, по умолчанию стоит дебагер...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Mic    0

давайте я угадаю ПЫХ16Ф628

К моему большому сожалению, не совсем так. к 12 и 13 pin кварц 32768, а у меня- 4 000 000!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
HaOS    0

Сделал то же самое в режиме Release - на выходе результат тот же, что и в Debug - меняются биты, указанные в закладке Configuration Bits по определенному адресу, но прошивка читается.

post-41741-0-00521800-1459183241_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
HaOS    0

Всё, разобрался.

Из-за отсутствия опыта работы с mplab, я не нажимал кнопочку "Read", а сразу делал экспорт в файл.

Спасибо всем за содействие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2

Доброго времени суток.

Вопрос по железу. Корректно ли подключение выводов МК  параллельно для увеличения нагрузочной способности (общий катод на семисегментном индикаторе), естественно сконфигурированных одинаково. 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525

Корректно. Но только подавайте уровни на них одновременно. Даже на такт не задерживайте !

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2

Подскажите удобное обращение на си для синхронной записи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    525

Маской + операции "И" и "ИЛИ". Но подойдёт только для одного порта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    590

Врятли это имеет смысл, всеравно там ограничение тока на один порт. Работать впритык по ограничениям некомильфо вообще. Сильно сократит ресурс. Неужели на плате некуда вставить маааленький полевик в корпусе SOT-23 и пару резисторов на каждый катод?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Bugrim    2

Жалко транзистор. Три разряда-три транзистора. Ресурс МК позволяет ногами разбрасываться. 1 порт уйдет на сегменты примерно по 3ма (8*3=24ма), а это уже больше чем можно, но на параллельные - с головой хватит.

Сейчас другая загвоздка по ПО. MPlabX обновил МСС. Я и MPlabX до последней версии обновил, но что МСС хочет никак понять не могу.

59f7cb709db55_.thumb.jpg.d52ae3e000a973a450bc85bd33aa716a.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Serega4789
      Привет всем! пишу программу для pic16f84a кривошипный пресс, получилось запустить один режим (одноходовый) без блокировок и защит , для реализации двурукого включения нужно, чтобы нажимались 2 кнопки , при этом нужно чтобы программа следила за интервалом времени между нажатием 2х кнопок , при одновременном нажатии программа запоминает это событие и через 3-5 циклов сбрасывает ошибку и блокирует схему до сброса , при интервале 0,5 сек между нажатием кнопок программа выполниться без ошибок , при превышении интервала в 0,5с придется заново нажать на кнопки !
      Не хватает знаний команд и опыта для построения кода

    • Автор: Qwer11
      Здравствуйте.
      У меня есть микроконтроллер pic18f4550,
      я научился мигать светодиодом в flowcode и хотел бы сделать гирлянду,
      и небольшую вывеску из светодиодов.
      Как я понимаю на ножку микроконтроллера смогу не много поставить светодиодов т.к. там ограничение по току будет.
      поэтому исходя из схемы что я нашёл, используют транзистор для включения линии из светодиодов,
      какой транзистор по хар-кам подойдёт для включения 20 светодиодов в линии, (20мАх20=400мА)

      и как например я смогу включать светодиоды поочерёдно в одной линии,
      я читал что есть74HCT595, для экономии ножек например, при подключении индикатора светового,
      как я понимаю, для включения 20 светодиодов поочерёдно нужно или 20 портов использовать и 20 проводов,
      или перед каждым светодиодом поставить микросхемку какую нибудь, которая будет давать сигнал на включение.
      Спасибо.
    • Автор: Serge77
      Обязанности:
      · Разработка радиоэлектронных и GSM-устройств: разработка схем, программирование, разводка печатных плат, разработка документации.
      · Программирование микроконтроллеров STM, AVR, ARM, PIC на языке С/С++
       
      в личку или en@argument74.com
    • Автор: east1095
      Здравствуйте, давно читаю форум, зарегистрировался только сегодня, хочу попросить советов у вас для очередной работы.
       
      1. Мощность 30 кВт, напряжение 2 кВт, 15 А ток.
      2. Планирую полумост;
      вопросы:
      1. Шим контроллер должен поддерживать регулировку к.заполнения, с заданным dU/dT, это планирую делать с МК, потому что в случае пробоя быстроействуюий ключ даст сигнал об остановке преобразователя, потом будет строб, потом пуск источника, при этом он должен выйти на напряжение на котором произошла остановка работы с более коротким (быстрее) dU/dT, это можно реализовать с МК, завести сигнал с датчика КЗ.
      При этом нужна регулировка напряжение и регулировка уставки максимального тока(в приципе в схеме защиты от КЗ она уже реализована)
       
      2. Полумоста хватит на такую мощность?
      3. Можно ли с помощью софта рассчитать трансформатор на такие характеристики? Lite_calcIT не осилил такую задачу.
      4. 1 трансформатор или набор модулей соединенных последовательно для обеспечения нужного напряжения?
      5. Ткните носом в краткую но понятную ветку/статью о резонансных и квазирезонансных и других типах схем, т.к. я недостаточно в этом подкован, немного другие интересы, однако.
       
      Заранее спасибо!
    • Автор: пафнут
      доброго времени! недавно начал изучать pic контроллеры, бошка пухнет. вопрос в следующем: как в ассемблере реализуется процедура шим
      1)к пример у меня имеется одна кнопка и переключаю я ей три светодиода по принципу регистра сдвига и мне нужно чтобы каждому из трех светодиодов соответствовал к примеру коэффициент заполнения 30, 60, и 100%( делаю себе подогрев жопы к зиме)
      2) можно ли обращаться к кнопке при организации процедуры выполнения 15 минутной  задержки, чтобы я мог в любой момент его выключить до истечения 15 минут
      в прикрепленках сама схема в протеусе , но программу я написал только для включения одного светодиода, чтоб с одним хотя бы разобраться и тайминг поставил 5 сек, так сказать для наглядности
      pic.asm
      pic16.DSN
  • Сообщения

    • Ясно. Петлю сотворил? Оставь, чего уж там.
    • @colorad какие будут замечания относительно следующего? заменил 311 на 339.  нужно еще R19 пересчитать.(тот что задает уровень срабатывания компаратора по току)
      не могу разобраться на счет R12. рассчитывал исходя из тока светодиода. какой максимальный ток коллектора 7pin DIS 555? в даташитах не могу найти. можно ли поднять сопротивление R17 в полтора два раза? затвор наверное сотни нА будет кушать.. по этому стабилитрон на 5вт  кажется - слишком перебор.) посоветуйте D7(тот что параллельно нагрузке). ............................ диодный мост ткнул от-балды. ....................................
    • Ищите обрыв или непропай со стороны плюсовой шины. Скорее всего коллектор неконтачит.
    • Не буду ничего говорить. По-другому.  Он очень ровный по звуку и мягкий что ли.  Уровень шума мизерный с открытым входом еле шелестит, а с замкнутым вообще гробовая тишина в пищике. На осцилле на делении 2 мВ/ клетка даже ВЧ шума нет, только помеха 100 Гц  амплитудой 0,5 мВ. Скорость без ФНЧ намерил около 150 в/мксек, корректируется двумя конденсаторами миллера в УН. Сейчас стоит по 10 пФ, но уменьшал и до 8- тишина. Ограничение мягкое. Емкость в нагрузке переваривает до 1 мкФ, это сильно. Но это не народный усилитель, да и дорогой он в сборке.   На выходе у меня стоят MJL1302/3281 Попробовал R6=1,5 и 2,2 К. Нужно, видимо, чуть больше, один  транзистор повторителя приоткрывается, другой еще закрыт наглухо. Остается 3,3 оставить. 17 мА, конечно, многовато (вот почему тока и не хватало  стабам), но транзисторы греются не сильно, градусов до 45. 
    • @Sergey32 А что за реле? Два контакта на замыкание, или три? Если три, то при включении реле два контакта размыкаются. Вот в таких:    Эта функция "отключение при включении реле" уже встроена. Никаких вторых реле не нужно!
    • Чего считать то? на выходе любого блока питания их полно. перечислить? Не то что пальцев, волос не хватит.
    • Ясно. И как он по сравнению с твоим Никитинским гибридом, к которому Вадим плату разводит?