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

my504    154

Длину импульса измеряют с помощью модуля 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    484

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

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


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

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

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


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

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

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


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

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

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

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

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

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


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

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

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
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    484

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

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


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

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

Спасибо.

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


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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
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", а сразу делал экспорт в файл.

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

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: karomag
      Добрый день.
      Экспериментирую с подключение 7-сегментного индикатора к мк stm32. Индикатор с общим катодом. Соответственно для вывода цифры необходимо на анод каждого сегмента подать 1, а на общий катод 0. И тут я не могу понять какие токи будут через порты. Теоретически, пины МК подключенные через резистор 300 Ом к аноду (напряжение МК 3.3 В) то ток будет 4 мА, тогда на общем катоде должно быть 7 * 4 = 28 мА (цифра 8, т.е. горят все сегменты). Т.е. это небольшое, но превышение макс тока на ногу 20 мА. И надо общий вывод подключать через транзисторный ключ.
      Взял мультиметр. Результаты замера: ток каждого сегмента ~2.5 мА, ток общего катода 5 мА. Вот тут я подумал о школе Хогвардс))) Как все таки рассчитывается все таки ток на общем выводе? 
    • Автор: art_budka
      Ищу подрядчика для разработки проекта робота-рисовальщика. Есть бюджет, ТЗ. 
      Устройство представляет собой манипулятор передвигающий головку в плоскости XY в пределах жесткой рамы на которой установлены двигатели и направляющие перемещения. Головка представляет собой блок, отвечающий за передвижение закрепленного в фиксаторе объекта-пера по оси Z на расстояние до 20 мм. Фиксатор на элементе подъёма головки должен обеспечить жесткое закрепление предметов массой 10 - 80 грамм - кистей, шариковых ручек, карандашей и маркеров диаметром от 5 до 20 мм.
      Решение необходимо для обеспечения точных, многократно повторяющихся перемещений “пера” над плоской поверхностью. Для формирования движений в устройстве должна быть реализована электромеханическая схема, подключенная посредством USB-интерфейса к персональному компьютеру для отправки команд на манипулятор и получения обратной связи от контроллера манипулятора. 
      ТЗ, смета и бюджет через art_budka@rambler.ru 
    • Автор: green_whale
      Доброго времени суток.
      Собственно, сразу к делу. Необходимо измерить вч напряжение (частота порядка 20кГц, максимальная амплитуда 75мВ) с помощью микроконтроллера (скорее всего будет использоваться Arduino).
      Форма входного сигнала - пила (возрастает от минимального значения до максимального). Сигнал однополярный.
      Измерить нужно именно максимальное значение входящего сигнала. Измерение должно быть весьма точным (желательно, чтобы погрешность не превышала 1-2%).
      Есть пару идей :
      1. Сгладить сигнал, используя пиковый детектор (сможет ли сигнал такой частоты и формы зарядить конденсатор?).
      2. Использовать цап для генерации постепенно снижающегося напряжения и аналоговый компаратор.

      Надеюсь, кто-нибудь уже решал подобную проблему и сможет помочь советом или схемой.
    • Гость мистер_чувак
      Автор: Гость мистер_чувак
      Здравствуйте. Нашёл свои старые китайские портативные колонки, которые давно уже разобрал и потерял некоторые провода. Помогите разобраться, что к чему соединять, чтобы работало.
      фотка1
      фотка2
      фотка3
      фотка4
      фотка5
      фотка6
      фотка7
    • Автор: butyavk
      Компания "Диаконт" приглашает на собеседование по вакансии инженер-программист микроконтроллеров.
      Мы производим и поставляем современные приборы управления электроприводами для различных отраслей отечественной промышленности.
      Пополняем нашу команду программистов (готовы принять 2-3 кандидатов с различным опытом работы)!

      Основные обязанности:
      Разработка программного обеспечения для блоков управления приводами и др. вычислительных систем.
      Программирование на C++ микроконтроллеров фирмы Texas Instruments и НИИЭТ на базе ядра ARM Cortex-M4.
      Поддержка и доработка существующего программного обеспечения.
      Участие в научно-исследовательских и опытно-конструкторских работах.
      Участие во внедрении систем на объектах (редкие командировки).

      Требования к кандидатам:
      Хорошее знание схемотехники;
      Знание методов разработки и проектирования ПО для микроконтроллеров и опыт работы с их периферией;
      Знание основ управления электроприводами и ТАУ;
      Знание языков программирования высокого уровня (C++, C);
      Знание современных методов разработки ПО (ООП, ...);
      Знание английского языка (чтение технической документации);
      Приветствуется знание Python, Matlab/Octave;
      Дополнительным плюсом будет опыт автоматизированного тестирования встроенного ПО.

      Условия:
      Оплата полностью белая (на руки в зависимости от знаний и опыта от 50 000 руб до 100000 руб). Но, готовы обсуждать!;
      Карьерный и профессиональный рост;
      Предприятие с комфортными условиями труда на севере города;
      ДМС;
      График работы понедельник - пятница 9:00-17:40;
      Плавающее начало работы с 8:00-10:00;
      Льготное питание в столовой на территории предприятия;...

      Ключевые навыки
      Программирование микроконтороллеров
      C/C++
      Управление электродвигателями

      Адрес
      Санкт-Петербург, ул. Учительская 2, м. Гражданский проспект

      Тип занятости
      Полная занятость, полный день

      Резюме лучше отправлять на rykov@diakont.com 
  • Сообщения

    • К цифровому, еще хотите добавить шум ДС/ДС? Если уж так не можете отфильтровать. Если принципиально двухполярка, примените низковольтный ОУ и поделите  5 В банальным делителем пополам.  
    • Можно добавить УЗИП на вводе и по желанию на группы в щиток. В некоторых поселениях без такой штуки в ВУ не подключат к ЛЭП . Говорят в нутре у них мощные варисторы и даже от попадания молнии защищают.
    • @Pont 007 Я, признаться, не знаю зачем автору темы это нужно, ну уж коли спросил..., а питание с аудиокарт не видел ни разу, разумеется брать +5 вольт с материнки просто так нельзя, помехи будут жуть. @pips Конечно я работал и с этими микросхемами ещё в советской реинкарнации, названия уж не помню. Что касается тактовой частоты ещё раз говорю она здесь особой роли не играет, все равно по питанию как с +5 так и с -5 надо ставить фильтры. На мой взгляд лучше это LC фильтры, индуктивность типа такой или такой выводом от источника напряжения, а другим выводом на  питание ОУ и конденсатор на землю микрофарад 220 + керамика 0,1 мкФ. Просто рисовать неохота, просто ведь.
    • В "Моделисте-конструкторе" нечто подобное делали - трансформатор для сварочника из электродвижка:   МК 8-1992, стр. 19 МК 1-1996, стр. 11 МК 9-2000, стр. 11
    • wm5102e где стоит: Lenovo Yoga Tablet 2 10-51; Samsung Galaxy S4 GT-I9500; Meizu MX3;
    • @o_l_e_g  Спасибо. Но это вам в соседнюю мою тему, я там с этим вопросом уже обсуждал. )))) Если кратко, то весь цифровой бред (шум питания) который по USB питанию попадает на вход усилителя. А я не знаю как его фильтровать нормально. Да и вообще костыль всё это.   В общем эту тему средней точки, пожалуйста тут не развивайте, если хотите помочь молости прошу, Тема моя ниже по ссылке:   Спасибо за совет, но я что буду приходить к каждому с паяльником со словами "давайте мы сейчас ваш комп разберем, попаяем, а потом продолжим".  В общем ваши предлоложения касательно зачем мне это нужно были не верны, спасибо.