Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Re: MPLAB X IDE

Чт янв 27, 2022 14:17:34

Энкодер стоит на транспортёре, и служит для определения местоположения объекта в текущий момент времени.
Менюшками к сожалению не балуемся

Re: MPLAB X IDE

Чт янв 27, 2022 14:18:16

До DMA пока не добрался, как говориться потом сюрприз будет :?

Нет там никакого сюрприза. Просто имеет место быть жесткая привязка канала ДМА (имеется виду РЕКВЕСТОВ, а не данных!!!) к конкретным источникам этих реквестов. А если реквест генерируется самой периферией источником/приемником данных, то тогда будет привязка данных к каналу. Но почти всегда имеется ДВА варианта выбора канала. Источники повторяются для них. Такшта приемчики имеются... :tea:

Re: MPLAB X IDE

Чт янв 27, 2022 14:27:41

Нет там никакого сюрприза.

Да я про грабли на те которые потом наступить придётся :)))

Добавлено after 6 minutes 39 seconds:
Аlex, поскольку у вас есть опыт работы с обоим семейством контроллеров, имея ввиду PIC32 и STM32, как они между собой по надёжности, возможно был опыт?
Поскольку мы своё оборудование устанавливаем как на улице где температура -40 +40 так и в цехах где может быть высокий уровень ЭМИ помех. Где то утверждалось что PIC32 устойчивее чем например AVR хотя теперь их на одном заводе делают.

Re: MPLAB X IDE

Чт янв 27, 2022 14:31:43

Где то утверждалось что PIC32 устойчивее чем например AVR хотя теперь их на одном заводе делают.

1. Устойчивость к помехам определяется током защелкивания выходных драйверов на пинах.
2. Их не делают на одном заводе. Это невозможно по определению. У них совершенно разные техпроцессы.

Re: MPLAB X IDE

Чт янв 27, 2022 14:35:51

1. Были случаи когда из-за ЭМИ контроллер виснет и потом собака его перезагружает :(
2. Наверно, но микрочип их поглатил, и чего они теперь там выпускают

Re: MPLAB X IDE

Чт янв 27, 2022 15:06:16

Аlex, поскольку у вас есть опыт работы с обоим семейством контроллеров, имея ввиду PIC32 и STM32
Опыт у меня только с PIC(12,18,32). С STM'ами опыт нулевой.
Но и по помехам я не скажу ничего. Моё дело - программа. А всякая там схемотехника, помехи, и т.д... - не моё. Даже не вникаю :)

Добавлено after 1 minute 51 second:
Блин незнал, планировал потом с пика перевести всё на STM, мне у них функционал понравился
Ну не всё там так плохо. Пока мне у них только DMA не понравился. Остальное всё там вкусненькое :tea:

Re: MPLAB X IDE

Чт янв 27, 2022 15:19:40

2. Наверно, но микрочип их поглатил, и чего они теперь там выпускают

Атмел всегда был фаблесс компанией. То есть выпускал свое хозяйство на чужих площадках.
Есть такое мнение, что Микрочип старые позиции так и продолжил выпускать на тех же площадках.

Добавлено after 2 minutes 55 seconds:
Остальное всё там вкусненькое :tea:

Там еще есть ограничения на соединение таймеров по синхронизации мастер-слейв. Ну и не все таймеры одинаково полезны... :) Полагаю это самой большой засадой с учетом "недоремапа" пинов...

Re: MPLAB X IDE

Пт янв 28, 2022 10:45:50

Ну и по ходу пьесы, появился вопрос: аппаратный SPI у нас может передавать только 8/16/32 бита, других вариантов я что то не нашёл. Я использую дисплей которому нужно передавать нестандартные 10 бит, это как то можно сделать используя аппаратный SPI?
Дисплей использую давно, но он висит на самописном программном SPI.
Пробовал ли кто эти 2 бита ногодрыгом дослать? :roll:

Re: MPLAB X IDE

Пт янв 28, 2022 12:22:35

Пробовал ли кто эти 2 бита ногодрыгом дослать? :roll:

Ничего не надо досылать. Посылается количество бит, которое БОЛЬШЕ, чем требуемое. Лишние просто будут вытолкнуты в приемнике.

Re: MPLAB X IDE

Пт янв 28, 2022 14:28:36

Да кстати была подобная идея, просто не предполагал как приёмник на неё отреагирует. Ну судя по сему первые 6 бит в первом байте пишем что попало, но лучше 000000 которые потом вылетят.

Re: MPLAB X IDE

Пт янв 28, 2022 14:45:22

просто не предполагал как приёмник

Приемнику фиолетово что там сдвигается во входном регистре. Этот регистр вообще может быть частью последовательной цепочки совершенно разных микросхем при их последовательном соединении. Все определяется в момент защелкивания данных. Что в этот момент будет в сдвиговом регистре, то и перепишется в выходной буфер приемника.
Тут не может быть никаких "мыслей". Это ТИПОВОЕ решение.

Re: MPLAB X IDE

Чт фев 10, 2022 18:24:15

Долго думал куда адресовать мой вопрос. То ли сюда, то ли в тему "Программирование PIC на СИ"... Решил сюда.
Мой вопрос касается генератора кода для мк PIC16. А конкретно, объявлению указателей на функции для обработки прерываний. Зачем это делается? Я спрашиваю не в широком понимании определения "указатель на функцию" и гибкости ее применения. Меня интересует конкретный момент. Дает ли применение указателей на функцию какой-либо прирост скорости в обработке прерывания конкретно в этих микроконтроллерах?
Или в обработчике прерываний
Код:
void __interrupt() ISR(void){

}

можно вызывать напрямую функции обработки прерываний и это никак не повлияет на скорость их обработки?

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

Re: MPLAB X IDE

Пт фев 11, 2022 13:45:45

Нет, не дает. В обработчике лучше вообще ничего не вызывать, а прямо инлайнить функции в его тело.
Вызов функции через указатель на этой платформе задействует вычисляемый переход. Это лишние накладные расходы в коде.

Re: MPLAB X IDE

Пт фев 11, 2022 14:28:34

а прямо инлайнить функции в его тело.

Ну пока я так и сделал. Просто опыта с программированием PIC мало, а тут разработчики МСС со своим кодом меня озадачили. Думал это дает выигрыш в скорости в данном компиляторе.

Еще вопрос назрел.
Есть директива #define Идентификатор Подстановка, где в качестве подстановки стоит формула.
Где можно посмотреть, какое значение получит Идентификатор? Можно ли это глянуть в каком-нибудь файле или вывести как-то в сообщениях компилятора?
Это чисто для подстраховки мне сейчас понадобилось. Сейчас выкручиваюсь так: объявляю переменные, присваиваю им Идентификатор и в симуляторе смотрю полученные данные. Это несколько неудобно в плане того, что потом приходится подчищать код от лишнего мусора.

Re: MPLAB X IDE

Пт фев 11, 2022 14:32:33

Где можно посмотреть

Откройте листинг дизасма и там все увидите.

Re: MPLAB X IDE

Сб фев 12, 2022 08:39:45

Откройте листинг дизасма и там все увидите.

Да в том то и дело, что я проверил через поиск все файлы внутри проекта. Особенно настойчиво искал в папке dist по Идентификатору. И не нашел. Какое расширение имеет файл дизасма? *.lst?

Re: MPLAB X IDE

Сб фев 12, 2022 09:09:51

настойчиво искал в папке

Не надо искать.
Надо сходить в меню: Window-Debugging-Output. И если там нет листинга, то там есть причина его отсутствия, которую и нужно устранить.
Иной вариант поиска требуемого - просмотр Program Memory. Включаете в среде симулятор, ставите брейкпойнт в исходнике и находите этот же брейкпойнт в окне программной памяти.

Re: MPLAB X IDE

Вт фев 15, 2022 12:33:48

Надо сходить в меню: Window-Debugging-Output. И если там нет листинга, то там есть причина его отсутствия, которую и нужно устранить.

Листинига не было. Зато выскочило окно с подсказкой где и как его активировать. Спасибо за наводку.

Теперь назрел вопрос более глобальный. И тут я уже столкнулся с сильной проблемой. Есть AN526 с математическими функциями на ассемблере. Мне для среднего семейства сейчас понадобилось прикрутить быструю математику. Но в этом апноте код написан для MPASM. как его прикрутить к XC8, да еще и к проекту, написанному на С? В частности библиотеку умножения 16-битных значений (см. вложение).
Есть инструкции на компилятор https://microchipdeveloper.com/swtools:pic-asm. Но я что-то делаю не так. Постоянно выводит ошибку синтаксиса на макрос. Да и с регистром STATUS не понятно, тоже постоянно строчка висит в ошибке. Хотя библиотека xc.inc подключена.
Я совсем мало знаю ассемблер. Превожу, так сказать, со словарем (то есть с описанием инструкций в даташите) и очень долго. Но тут другого выхода нет. Нужна математика. Или мне проще разобраться с кодом и переписать его на С? Подскажите как лучше! Я просто опасаюсь, что код на С все равно будет работать медленнее. Или это не так?

PS. микроконтроллер PIC16F1936, забыл упомянуть. В файле mpreg.h указан другой мк. Но я его приложил для справки, поскольку он шел с библиотекой
Вложения
dbl_mpyf.zip
(2.04 KiB) Скачиваний: 127
Последний раз редактировалось serg_svd Вт фев 15, 2022 13:48:56, всего редактировалось 1 раз.

Re: MPLAB X IDE

Вт фев 15, 2022 12:50:43

Пардон, а нафига в проект на Си пихать вставки с математикой(!) на асме?? Для того люди на Си и переходят, чтобы извлечение квадратного корня из числа не набивать три сотни строчек кода..

Re: MPLAB X IDE

Вт фев 15, 2022 13:54:04

Пардон, а нафига в проект на Си пихать вставки с математикой(!) на асме??

Для скорости обработки потока данных. У данного мк нет аппаратного умножения. Если в коде будет куча операций умножения, то нет гарантии, что компилятор сделает оптимальный быстрый код.
Я не программист и не студент, но поставлена такая задача. Надо попробовать и сравнить потом по скорости обработки.
PS. и еще... Все математические библиотеки в компиляторе написаны под общую задачу и не оптимальны по скорости обработки и по коду.
Ответить