Перейти к содержанию

Общие вопросы по PIC-микроконтроллерам


NebsteR

Рекомендуемые сообщения

7 часов назад, UVV сказал:

Err_c = Err_c + 1; //запрещенное состояние Err_c это переменная или нет если переменная то где что дальше с ней делается за циклом switch?

если энкодер подключен к двум входам порта Б то откуда берутся изменения в 0b00001101 в третьем и четвертом бите. 

то есть к каким пинам по счёту энкодер подключен

1. можно ничего не делать, это переменная введена для контроля исправности эндкодера и наличие ошибок при больших скоростях

2. Алекс уже ответил

3. к PORTB<1:0>,  строку

Enc_state |= PORTB;//Проверяем входные линии

исправить на

Enc_state |= PORTB&((1<<1)|(1<<0)); //Проверяем входные линии

 

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

@IMXO этот вариант тоже надо отработать и выложить. Народ тоже нуждается в энкодерах.

@IMXO может отдельную тему создать и закрепить про энкодеры?

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

зачем ? тема уже давно существует http://forum.cxem.net/index.php?/topic/194645-подключение-и-работа-с-энкодером/ в соответствующем разделе форума, достаточно включить поиск по сайту и получить почти четыре десятка страниц с упоминанием эндкодера, как минимум пять тем где обсуждаются алгоритмы  обработки 

 

23 часа назад, UVV сказал:

программу обработки команд энкодера я спиз... у кого то

этот код тоже самый кейс только написанный через опу с лишними проверками приводящий к увеличению машинного кода

 

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

  • 1 месяц спустя...

Есть дисплей 2х16, нужно сделать вольтамперметр на БП с 2мя независимыми каналами. Как это сделать? есть такая идея: допустим 1канал будет гальванически связан  например с  16f873A, на второй канал сделать отдельный измеритель напряжения и тока на 12f675 и связать два контроллера без гальв. связи.

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

  • 2 месяца спустя...

У меня не вопрос, а подсказка для тех, кто напорется на ту же проблему. Поиск может быть выведет сюда.

МК - PIC16F18446 на подарочной демо-плате DM164144. Неделю мучился (в свободное время), не мог получить "эхо" от УАРТа, при этом передача работала. Наконец со злости сделал новый тестовый проект, но теперь уже посредством конфигуратора (МСС). "Эхо" появилось. Начал копаться в МСС конфиге - все примерно как у меня. Одно отличие - вручную я писал на ХС8 версии 1.45, а МСС делал на версии 2.05. Оказалось, что в версии 1.45 адрес RX1DTPPS в заголовке указан 0x1EC9, а в версии 2.05 правильный - 0x1ECB. Это не считая того, что в ДШ он вообще называется RX1PPS.

Вот теперь задумался, а не из-за кривого ли заголовка у меня не завелся 32 kHz кварц на этой плате?!

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

А чем же Вы целую неделю занимались? 

Вроде очевидно, что если нет эха, нужно посмотреть состояние регистра управляющего включением эха и мгновенно обнаружить расхождение имен-адресов в хедере. 

Тем более, что исправить хедер Вы могли самостоятельно. 

Я уже не говорю, что компилятор нужно всегда брать актуальный. Кстати, нынче действует 2.05b.

戦う前に相手のベルトの色に注目

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

У меня нет времени постоянно этим заниматься, это не работа, а хобби, которому не каждый день уделяется. Неделя - это срок с момента обнаружения проблемы и до того, как удалось взяться за неё. В промежутке я только урывками читал ДШ в поисках проблемы у себя в конфиге, не верилось, что могли допустить такую грубую ошибку в адресации такой популярной периферии.

Изменено пользователем Zhuk72
Ссылка на комментарий
Поделиться на другие сайты

Ерунду не надо писать. 

Это просто опечатка технического писателя. 

Ее пофиксили в следующей версии компилятора. 

Элементарно обнаруживается через пару минут после включения отладчика... 

戦う前に相手のベルトの色に注目

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

Марк, спуститесь на землю, здесь тоже люди живут.

Еще раз повторяю: у меня в данное время нет времени и условий заниматься этим хобби даже 20 минут без того, чтоб меня не оторвали на посторонние дела. До этого ни разу я с подобной ошибкой не сталкивался ни на одной чипе PIC, STC, C8051 или STM32. Мне не приходило в голову, что могут выпустить компилятор без проверки хотя бы базовой периферии.

Что касается пары минут... Ну не за пару, но за 20-30 минут (учитывая, что я впервые использовал МСС) я вышел на источник проблемы. Этой платой я начал заниматься еще в марте прошлого года, тогда и вылезла эта проблема. С того времени и до мая этого года было не до МК вообще. После таких перерывов трудно включаться обратно и поневоле возникают сомнения в правильности своих действий. Так что не судите всех по себе.

Уже жалею, что вообще поделился этим наблюдением.

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

Ошибки в хедерах достаточно часты. Иногда их ловит компилятор, иногда нет. 

Зависит от синтаксиса ошибки. 

Это просто надо воспринимать как возможное. 

戦う前に相手のベルトの色に注目

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

  • 1 месяц спустя...

Вопрос по видимости меток в другом файле. Есть проект загрузчика. В файле "memory.s" описаны глобальные метки: (извиняюсь за форматирование, проблемы с кнопкой CODE)

.global _F1, _F2, _F3

_F1:

        mov W0, NVMADRU

      mov W1, NVMADR

 

Далее в файле "main.c" объявлено:

extern   UWORD16   F1 (UWORD16,  UWORD16)

и далее происходит вызов функции

F1 (A, B);

Я вот не пойму, объявление global с подчеркиванием, а функция без него. Как компилятор понимает, что вызывая   F1 (A, B);   нужно перейти на метку _F1    ?

Никак не пойму. Больше в проекте никаких функций F1 (тоже самое и с F2, F3) нет !

         

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

Читаем мануал на XC16 на странице 226:

Quote

Variables or functions declared within a separate assembly file that will be
referenced by any C source file should be declared as global using the assembler
directive.global. External symbols should be preceded by at least one
underscore. The C function main is named _main in assembly and conversely an
assembly symbol _do_something will be referenced in C as do_something.
Undeclared symbols used in assembly files will be treated as externally defined.

 

戦う前に相手のベルトの色に注目

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

  • 1 месяц спустя...

Ребят, прошивал один раз только "аттини" и то лет 6 назад.

Нужно прошить PIC12F629 (что собираю http://cxem.net/mc/mc265.php)

Программатор есть только USBASP V2.0

На компе windows 10.

Тыкните пальцем на инструкцию, в идеале пошаговая инструкция, тогда точно справлюсь. Спасибо.

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

10 часов назад, d19codec сказал:

Тыкните пальцем на инструкцию, в идеале пошаговая инструкция, тогда точно справлюсь.

на рынке/радиомагазине/интернете/ приобретаешь pickit2, pickit3 или pickit4 , устанавливаешь фирменное ПО , подключаешь МК к программатору и заливаешь прошивку. 

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

  • 5 месяцев спустя...

Доброго дня.

Подскажите возможно ли вычислить максимальное время вычисления выражения. В конкретном случае деление/умножение 32 разрядных чисел. Максимальное время выполнения операций необходимо для расчета времени (частоты) опроса датчика, который предоставит новые данные для вычисления. Пишу на xc8.

За ранее благодарен.

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

а разве хусым восьмой умеет перемножать 32 разряда? на сколько понимаю результат имеет размерность 64 бита, а хусым такую разрядность не знает... или нет?

а так время выполнения кода смотрел в протезе по брекпоинтам.

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

Может и за умножение загнул, но так или иначе оперировать надо 32 разрядными. На данном этапе пока что это размышления о будующем проекте. Но в протеусе посмотреть проблемы не составит, однако я подозреваю, что время операции деления числа на 2, 4 или 8 будет отличатся от времени деления на число, например, 863. Все комбинации деления перебрать - глупость, с моей точки зрения. Подозреваю, что не один я столкнулся с подобным.  

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

1 hour ago, Bugrim said:

я подозреваю, что время операции деления числа на 2, 4 или 8 будет отличатся от времени деления на число, например, 863

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

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

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

14 часов назад, Bugrim сказал:

необходимо для расчета времени (частоты) опроса датчика, который предоставит новые данные для вычисления.

Вычисления с высокой целочисленной разрядностью (32*32 или 32/32) нужны достаточно редко. Особенно на 8-битной платформе.

Впрочем, 32-битный флоат так же мало необходим.

Если не секрет, что за вычисления Вы заложили со столь высоким разрешением?

戦う前に相手のベルトの色に注目

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

ПИД регулятор. Контроль температуры. Хочется:

1 частота опроса 25 Гц для каждого канала.

2 каналов - 3

3 датчик температуры - термопара К типа - 3 шт.

4 динамическая индикация 5 разрядов.

5 органы управления - 4 кнопки.

В первом приближении так.

В вычислениях предполагаю использовать такой формат. 16 бит: 5 разрядов - дробная часть, 10 - целая, 1 знаковый. Расчет примерно так ( ещё обдумываю):

U = K * ( Err + (1/Ti)*Int + Td*dErr )

Eo = E; Нам нужна прошла ошибка. Ошибки — по 16бит

E = Y-X; Вычисляем новое рассогласование. 16bit

Int = Int + (E+Eo)/2; Интегрируем ошибку. При этом считаем полусумму разности (разностная схема). 32bit = 32bit + 16bit

cI = Int * (1/Ti); Считаем интегральный вклад — 32bit * 32bit => 32bit

cD = Td * (E-Eo); Считаем диф вклад — 16*16 => 32bit

PID = E + cI + cD; Подскобочное; 16+32+32 => 32bit

U = K*PID/256; Коэфф; 32*16/8 bit => 40bit.

Будет ли успевать на частоту 25Гц, или изначально снизить надо.

Источник вдохновения - https://m.habr.com/ru/post/145991/

 

 

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

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • Правильней будет сказать: никто не видел, чтобы его били. Ещё подсветку проверьте - сильно ли нагревается экранчик от неё?
    • С каких пор микросхема стабилизатора напряжения, включенная по схеме стабилизатора же напряжения, стала работать ещё и ограничителем тока?
    • Ну вот, пока готовил эскиз, на все вопросы ответили :-) Действительно, в 3D моделях DipTrace нет (или не нашёл) модели корпуса ТО220 с распайкой с нижней стороны и креплением к радиатору - по этому и получился такой 3D-портрет платы. Задуманная конструкция выглядит примерно так:  По факту, для наладки, сейчас подключаю транзисторы, закрепленные на радиаторе, проводами.
    • Чтобы потом не допиливать паровоз до истребителя. Заводские варианты схемотехники куда более предсказуемы. Из "вольностей" в первую очередь как-то решать проблему коммутации, подходящий переключатель для режимов искать история долгая и грустная. Что-то там с реле. На диапазоны 6п4н вроде же ?  пг2 хрен найдёшь, п2г тугое неудобство(  Рассыпушный ацп делать, боже упаси. Ну разве что был грешен, побаловался когда-то пнч-ацп. С 1108пп1 и 155 серией
    • Но зачем повторять 1в1? Там дана просто топология   Но не совсем же с нуля. Маловероятно, что вы найдете расширение диапазона 7135 до 200мВ по тому же методу, что это реализовано в В7-38, тем не менее, это вполне реализуемо. А вот до 20мВ я спустить диапазон не смог Что-то предусилитель интегратора отказывается вести себя хорошо   Для сравнения, та же точка (вход интегратора) при 200мв пределе, усиление х10   Ну и 2В Госпаде боже лтц2400, на этой штуке можно и 6 разрядник собрать, лютый АЦП, какие 4.5 разряда Цена на него сейчас конечно негуманная кстати.
    • Что то не нашёл примеров такой реализации замены. С нуля целесообразность подобного действа под вопросом. Тут мои полномочия всё) Как бы почему смотрю на hm8011-3, возможность реализации +/- норм настольного мультиметра без всякой там жести в виде кодинга и микро-мелких современных элементов. Для калибровки валяется где-то в1-12 и прецизионных резисторов если моих не хватит, есть где заказать.  На данный момент разве что качественного файла нет, пытался там всякими улучшайками чего сделать, увы. Пойду через впн лазить по уголочкам всяким, вдруг всплывёт чего. ------------- 8012, 80c32 + 27c512. Чертежи плат есть, осталось hex раздобыть 
  • Похожий контент

×
×
  • Создать...