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

my504    348

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

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

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

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

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

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

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


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

Добрый день.

Имею некоторый успешный опыт программирования МК 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    546

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

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


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

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

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


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

Найдите миллионы труднодоступных

электронных компонентов

IMXO    1 332

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

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


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

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

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

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

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

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


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

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

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


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

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

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


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

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

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

test.rar

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

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


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

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

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


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

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

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

Спасибо.

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

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

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

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


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

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

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


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

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

Спасибо.

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


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

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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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

59f7cb709db55_.thumb.jpg.d52ae3e000a973a450bc85bd33aa716a.jpg

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

    • Автор: Сергей Скопинцев
      Нужно разработать циклическую программу сбора информации от 10 измерительных источников. Период повторения цикла - одна секунда
      Источники:
       М - тензопреобразователь давления. Мостовая схема питается постоянным напряжением, выходной сигнал от 0 до 100 милливольт
       Т, ТМ, ТА- три канала измерения изменения напряжения в диапазоне от 400 до 600 милливольт (тоже нужен мост?)
       ЛМ - анализатор максимума напряжения (от 0 до 5 Вольт) по 10 точкам более-менее распределённых в измерительном цикле. Найденный максимум потом должен участвовать в анализе, постепенно уменьшаясь на 20% каждый цикл
       ВЛ - измерить напряжение на Малой емкости (50 пФ) с помощью емкостного делителя по алгоритму:
                         Снять Землю со средней точки емкостного делителя, подать на емкостной делитель положительный Импульс
                         Замерить нужное нам напряжение в средней точке делителя
                         Снять положительный Импульс с делителя, посадить на землю среднюю точку делителя
      - остальные каналы К7...К10  служебные
      Разрядность данных - 16 двоичных.

      Результаты писать на MicroSD текстовым файлом, на первом месте в строке текущее время в секундах, остальные каналы разделены пробелами
      Порядок каналов:
      Т - М -ТМ - Вл - ЛМ -...
      Коэффициенты усиления по каждому информационному каналу должен иметь возможность изменить оператор по формуле y = Ax + B
      Прибор автономный, питается от + 5 Вольт.
       
    • Автор: Ru_s
      Здравствуйте. Подскажите пожалуйста, возможно ли на attiny13 реализовать такую штуку. Мне в процессе работы программы нужно поменять режим работы таймера/счетчика с fast PWM на обычный счёт, отсчитать длительный промежуток времени и опять вернутся в режим ШИМ. Т.е. я подаю на ногу сигнал ШИМ и когда он в максимальном значении, я его отключаю, и тупо подаю на ногу высокий лог. уровень. В это время Т/С по идее свободен, и мне надо посчитать время работы выхода на максимальном лог. уровне, при достижении какого-то значения времени нужно перевести т/с обратно в ШИМ. Возможно ли это? И как приблизительно это реализовать
    • Автор: Kiraspbkiev Kira
      День Добрый. Есть два вопроса от новичка: 1) Правильная ли схема сделанная мною? 2) если схема верна то как правильно подключить к atmega328p-mu usb на чипе cp2102-grm?
      На схеме колодка JP1 это AVR ISP а JP2 это UART
      С проектированием столкнулся в первый раз, цель узнать что то новое и сделать своими руками:)

    • Автор: Stratix
      Здравствуйте, у меня проблема с прошивкой разных устройств из-за программаторов. Дело в том что у меня есть некоторое количество китайских и самодельных программаторов для разных производителей, с ними постоянно какие-то проблемы, некоторые отказываются нормально работать на windows 10(другие версии ПО не устраивают), другие не работают с последними версиями сред разработки и т.д. Так же нужно прошивать схемы памяти. Хочу прошивать устройства без постоянной сборки программаторов и неудобств. Думаю о двух вариантах: взять оригинальные программаторы для всех производителей: altera, xlinx, arm, pic, avr(некоторые найти сложно, например оригинальный usb-blaster и высокая стоимость в сумме), второй вариант: взять универсальный программатор, который бы поддерживал все новые микросхемы, а вот с этим проблема, большинство универсальных программаторов не шьют stm, плис. Есть ли вообще реально универсальные программаторы? Мне было бы намного удобнее если на столе б лежал один программатор, а не куча. Смотрел список микросхем chipprog-48, пока что самый большой, к сожалению не поддерживает новые fpga, например: cyclone IV. Связывался, сказали что поддержки не будет и в будущем. Стоит ли взять chipprog-48 в 2018 году или есть программаторы лучше, с большим списком микросхем?
    • Автор: ITSpec
      Привет всем. Это мой первый пост здесь  прошу отнестись снисходительно.
      Просматривал ролики на Ютуб и понравилась тема одного из блогеров: "Воруем у китайцев". Идея понравилась и полез на Алиэкспресс поискать какой нибудь конструктор чтобы сплагиатить.
      Выбор пал на этот.

      Схему даже с платы не пришлось перечерчивать она была на странице продавца.

      Основная часть этой схемы обычный мультивибратор, который "перемигивает" параллельно подключенные диоды. Вторая часть схемы служит для музыкального сопровождения и состоит из трех компонентов: музыкальной микросхемы, усилителя звука в виде транзистора и громкоговорителя в виде пьезового зумера.
      Такой микросхемы у меня конечно же небыло и я заменил ее на чип H-83a который не нуждался в усилителе.

      Сразу припаял на него SMD резистор и кнопку для переключения мелодий согласно схеме.

      В оригинальной схеме использовались двухцветные диоды, таких у меня тоже не было и я их заменил на обычные 3 мм двух цветов.
      Зуммер я тоже не нашел заменил динамиком от старой мобилы.

      Открыл EASYEDA и нарисовал схему.

      Потом спроектировал плату.

      После прибегнул к технологии ЛУТ.

      Припаял все элементы. Отсек для батарейки и чип посадил на термоклей.

      Вот фото окончательного устройства.

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