Страница 9 из 20
Re: MPLAB X IDE
Добавлено: Чт янв 27, 2022 14:17:34
alex_
Энкодер стоит на транспортёре, и служит для определения местоположения объекта в текущий момент времени.
Менюшками к сожалению не балуемся
Re: MPLAB X IDE
Добавлено: Чт янв 27, 2022 14:18:16
КРАМ
[uquote="alex_",url="/forum/viewtopic.php?p=4169092#p4169092"]До DMA пока не добрался, как говориться потом сюрприз будет

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

Re: MPLAB X IDE
Добавлено: Чт янв 27, 2022 14:27:41
alex_
[uquote="КРАМ",url="/forum/viewtopic.php?p=4169097#p4169097"]Нет там никакого сюрприза.[/uquote]
Да я про грабли на те которые потом наступить придётся
Добавлено after 6 minutes 39 seconds:
Аlex, поскольку у вас есть опыт работы с обоим семейством контроллеров, имея ввиду PIC32 и STM32, как они между собой по надёжности, возможно был опыт?
Поскольку мы своё оборудование устанавливаем как на улице где температура -40 +40 так и в цехах где может быть высокий уровень ЭМИ помех. Где то утверждалось что PIC32 устойчивее чем например AVR хотя теперь их на одном заводе делают.
Re: MPLAB X IDE
Добавлено: Чт янв 27, 2022 14:31:43
КРАМ
[uquote="alex_",url="/forum/viewtopic.php?p=4169101#p4169101"]Где то утверждалось что PIC32 устойчивее чем например AVR хотя теперь их на одном заводе делают.[/uquote]
1. Устойчивость к помехам определяется током защелкивания выходных драйверов на пинах.
2. Их не делают на одном заводе. Это невозможно по определению. У них совершенно разные техпроцессы.
Re: MPLAB X IDE
Добавлено: Чт янв 27, 2022 14:35:51
alex_
1. Были случаи когда из-за ЭМИ контроллер виснет и потом собака его перезагружает

2. Наверно, но микрочип их поглатил, и чего они теперь там выпускают
Re: MPLAB X IDE
Добавлено: Чт янв 27, 2022 15:06:16
Аlex
[uquote="alex_",url="/forum/viewtopic.php?p=4169101#p4169101"]
Аlex, поскольку у вас есть опыт работы с обоим семейством контроллеров, имея ввиду PIC32 и STM32[/uquote]Опыт у меня только с PIC(12,18,32). С STM'ами опыт нулевой.
Но и по помехам я не скажу ничего. Моё дело - программа. А всякая там схемотехника, помехи, и т.д... - не моё. Даже не вникаю
Добавлено after 1 minute 51 second:
[uquote="alex_",url="/forum/viewtopic.php?p=4169092#p4169092"]Блин незнал, планировал потом с пика перевести всё на STM, мне у них функционал понравился[/uquote]Ну не всё там так плохо. Пока мне у них только DMA не понравился. Остальное всё там вкусненькое

Re: MPLAB X IDE
Добавлено: Чт янв 27, 2022 15:19:40
КРАМ
[uquote="alex_",url="/forum/viewtopic.php?p=4169118#p4169118"]2. Наверно, но микрочип их поглатил, и чего они теперь там выпускают[/uquote]
Атмел всегда был фаблесс компанией. То есть выпускал свое хозяйство на чужих площадках.
Есть такое мнение, что Микрочип старые позиции так и продолжил выпускать на тех же площадках.
Добавлено after 2 minutes 55 seconds:
[uquote="Аlex",url="/forum/viewtopic.php?p=4169143#p4169143"]Остальное всё там вкусненькое

[/uquote]
Там еще есть ограничения на соединение таймеров по синхронизации мастер-слейв. Ну и не все таймеры одинаково полезны...

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

Re: MPLAB X IDE
Добавлено: Пт янв 28, 2022 12:22:35
КРАМ
[uquote="alex_",url="/forum/viewtopic.php?p=4169701#p4169701"]Пробовал ли кто эти 2 бита ногодрыгом дослать?

[/uquote]
Ничего не надо досылать. Посылается количество бит, которое БОЛЬШЕ, чем требуемое. Лишние просто будут вытолкнуты в приемнике.
Re: MPLAB X IDE
Добавлено: Пт янв 28, 2022 14:28:36
alex_
Да кстати была подобная идея, просто не предполагал как приёмник на неё отреагирует. Ну судя по сему первые 6 бит в первом байте пишем что попало, но лучше 000000 которые потом вылетят.
Re: MPLAB X IDE
Добавлено: Пт янв 28, 2022 14:45:22
КРАМ
[uquote="alex_",url="/forum/viewtopic.php?p=4169810#p4169810"]просто не предполагал как приёмник[/uquote]
Приемнику фиолетово что там сдвигается во входном регистре. Этот регистр вообще может быть частью последовательной цепочки совершенно разных микросхем при их последовательном соединении. Все определяется в момент защелкивания данных. Что в этот момент будет в сдвиговом регистре, то и перепишется в выходной буфер приемника.
Тут не может быть никаких "мыслей". Это ТИПОВОЕ решение.
Re: MPLAB X IDE
Добавлено: Чт фев 10, 2022 18:24:15
serg_svd
Долго думал куда адресовать мой вопрос. То ли сюда, то ли в тему "Программирование PIC на СИ"... Решил сюда.
Мой вопрос касается генератора кода для мк PIC16. А конкретно, объявлению указателей на функции для обработки прерываний. Зачем это делается? Я спрашиваю не в широком понимании определения "указатель на функцию" и гибкости ее применения. Меня интересует конкретный момент. Дает ли применение указателей на функцию какой-либо прирост скорости в обработке прерывания конкретно в этих микроконтроллерах?
Или в обработчике прерываний
можно вызывать напрямую функции обработки прерываний и это никак не повлияет на скорость их обработки?
Пробовал найти в инструкции на компилятор этот ответ, не нашел. В сети тоже пробовал, но видимо неверно задаю вопрос. Надеюсь Вы меня тут поймете, о чем я спрашиваю.

Re: MPLAB X IDE
Добавлено: Пт фев 11, 2022 13:45:45
КРАМ
Нет, не дает. В обработчике лучше вообще ничего не вызывать, а прямо инлайнить функции в его тело.
Вызов функции через указатель на этой платформе задействует вычисляемый переход. Это лишние накладные расходы в коде.
Re: MPLAB X IDE
Добавлено: Пт фев 11, 2022 14:28:34
serg_svd
[uquote="КРАМ",url="/forum/viewtopic.php?p=4178863#p4178863"]а прямо инлайнить функции в его тело.[/uquote]
Ну пока я так и сделал. Просто опыта с программированием PIC мало, а тут разработчики МСС со своим кодом меня озадачили. Думал это дает выигрыш в скорости в данном компиляторе.
Еще вопрос назрел.
Есть директива #define Идентификатор Подстановка, где в качестве подстановки стоит формула.
Где можно посмотреть, какое значение получит Идентификатор? Можно ли это глянуть в каком-нибудь файле или вывести как-то в сообщениях компилятора?
Это чисто для подстраховки мне сейчас понадобилось. Сейчас выкручиваюсь так: объявляю переменные, присваиваю им Идентификатор и в симуляторе смотрю полученные данные. Это несколько неудобно в плане того, что потом приходится подчищать код от лишнего мусора.
Re: MPLAB X IDE
Добавлено: Пт фев 11, 2022 14:32:33
КРАМ
[uquote="serg_svd",url="/forum/viewtopic.php?p=4178882#p4178882"]Где можно посмотреть[/uquote]
Откройте листинг дизасма и там все увидите.
Re: MPLAB X IDE
Добавлено: Сб фев 12, 2022 08:39:45
serg_svd
[uquote="КРАМ",url="/forum/viewtopic.php?p=4178884#p4178884"]Откройте листинг дизасма и там все увидите.[/uquote]
Да в том то и дело, что я проверил через поиск все файлы внутри проекта. Особенно настойчиво искал в папке dist по Идентификатору. И не нашел. Какое расширение имеет файл дизасма? *.lst?
Re: MPLAB X IDE
Добавлено: Сб фев 12, 2022 09:09:51
КРАМ
[uquote="serg_svd",url="/forum/viewtopic.php?p=4179414#p4179414"]настойчиво искал в папке[/uquote]
Не надо искать.
Надо сходить в меню: Window-Debugging-Output. И если там нет листинга, то там есть причина его отсутствия, которую и нужно устранить.
Иной вариант поиска требуемого - просмотр Program Memory. Включаете в среде симулятор, ставите брейкпойнт в исходнике и находите этот же брейкпойнт в окне программной памяти.
Re: MPLAB X IDE
Добавлено: Вт фев 15, 2022 12:33:48
serg_svd
[uquote="КРАМ",url="/forum/viewtopic.php?p=4179419#p4179419"]Надо сходить в меню: Window-Debugging-Output. И если там нет листинга, то там есть причина его отсутствия, которую и нужно устранить.[/uquote]
Листинига не было. Зато выскочило окно с подсказкой где и как его активировать. Спасибо за наводку.
Теперь назрел вопрос более глобальный. И тут я уже столкнулся с сильной проблемой. Есть AN526 с математическими функциями на ассемблере. Мне для среднего семейства сейчас понадобилось прикрутить быструю математику. Но в этом апноте код написан для MPASM. как его прикрутить к XC8, да еще и к проекту, написанному на С? В частности библиотеку умножения 16-битных значений (см. вложение).
Есть инструкции на компилятор
https://microchipdeveloper.com/swtools:pic-asm. Но я что-то делаю не так. Постоянно выводит ошибку синтаксиса на макрос. Да и с регистром STATUS не понятно, тоже постоянно строчка висит в ошибке. Хотя библиотека
xc.inc подключена.
Я совсем мало знаю ассемблер. Превожу, так сказать, со словарем (то есть с описанием инструкций в даташите) и очень долго. Но тут другого выхода нет. Нужна математика. Или мне проще разобраться с кодом и переписать его на С? Подскажите как лучше! Я просто опасаюсь, что код на С все равно будет работать медленнее. Или это не так?
PS. микроконтроллер PIC16F1936, забыл упомянуть. В файле
mpreg.h указан другой мк. Но я его приложил для справки, поскольку он шел с библиотекой
Re: MPLAB X IDE
Добавлено: Вт фев 15, 2022 12:50:43
TrumPIC
Пардон, а нафига в проект на Си пихать вставки с математикой(!) на асме?? Для того люди на Си и переходят, чтобы извлечение квадратного корня из числа не набивать три сотни строчек кода..
Re: MPLAB X IDE
Добавлено: Вт фев 15, 2022 13:54:04
serg_svd
[uquote="TrumPIC",url="/forum/viewtopic.php?p=4181478#p4181478"]Пардон, а нафига в проект на Си пихать вставки с математикой(!) на асме??[/uquote]
Для скорости обработки потока данных. У данного мк нет аппаратного умножения. Если в коде будет куча операций умножения, то нет гарантии, что компилятор сделает оптимальный быстрый код.
Я не программист и не студент, но поставлена такая задача. Надо попробовать и сравнить потом по скорости обработки.
PS. и еще... Все математические библиотеки в компиляторе написаны под общую задачу и не оптимальны по скорости обработки и по коду.