MPLAB X IDE

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: MPLAB X IDE

Сообщение alex_ »

Энкодер стоит на транспортёре, и служит для определения местоположения объекта в текущий момент времени.
Менюшками к сожалению не балуемся
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25167
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[uquote="alex_",url="/forum/viewtopic.php?p=4169092#p4169092"]До DMA пока не добрался, как говориться потом сюрприз будет :?[/uquote]
Нет там никакого сюрприза. Просто имеет место быть жесткая привязка канала ДМА (имеется виду РЕКВЕСТОВ, а не данных!!!) к конкретным источникам этих реквестов. А если реквест генерируется самой периферией источником/приемником данных, то тогда будет привязка данных к каналу. Но почти всегда имеется ДВА варианта выбора канала. Источники повторяются для них. Такшта приемчики имеются... :tea:
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: MPLAB X IDE

Сообщение alex_ »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4169097#p4169097"]Нет там никакого сюрприза.[/uquote]
Да я про грабли на те которые потом наступить придётся :)))

Добавлено after 6 minutes 39 seconds:
Аlex, поскольку у вас есть опыт работы с обоим семейством контроллеров, имея ввиду PIC32 и STM32, как они между собой по надёжности, возможно был опыт?
Поскольку мы своё оборудование устанавливаем как на улице где температура -40 +40 так и в цехах где может быть высокий уровень ЭМИ помех. Где то утверждалось что PIC32 устойчивее чем например AVR хотя теперь их на одном заводе делают.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25167
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[uquote="alex_",url="/forum/viewtopic.php?p=4169101#p4169101"]Где то утверждалось что PIC32 устойчивее чем например AVR хотя теперь их на одном заводе делают.[/uquote]
1. Устойчивость к помехам определяется током защелкивания выходных драйверов на пинах.
2. Их не делают на одном заводе. Это невозможно по определению. У них совершенно разные техпроцессы.
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: MPLAB X IDE

Сообщение alex_ »

1. Были случаи когда из-за ЭМИ контроллер виснет и потом собака его перезагружает :(
2. Наверно, но микрочип их поглатил, и чего они теперь там выпускают
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: MPLAB X IDE

Сообщение А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 не понравился. Остальное всё там вкусненькое :tea:
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25167
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[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"]Остальное всё там вкусненькое :tea:[/uquote]
Там еще есть ограничения на соединение таймеров по синхронизации мастер-слейв. Ну и не все таймеры одинаково полезны... :) Полагаю это самой большой засадой с учетом "недоремапа" пинов...
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: MPLAB X IDE

Сообщение alex_ »

Ну и по ходу пьесы, появился вопрос: аппаратный SPI у нас может передавать только 8/16/32 бита, других вариантов я что то не нашёл. Я использую дисплей которому нужно передавать нестандартные 10 бит, это как то можно сделать используя аппаратный SPI?
Дисплей использую давно, но он висит на самописном программном SPI.
Пробовал ли кто эти 2 бита ногодрыгом дослать? :roll:
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25167
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[uquote="alex_",url="/forum/viewtopic.php?p=4169701#p4169701"]Пробовал ли кто эти 2 бита ногодрыгом дослать? :roll:[/uquote]
Ничего не надо досылать. Посылается количество бит, которое БОЛЬШЕ, чем требуемое. Лишние просто будут вытолкнуты в приемнике.
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Re: MPLAB X IDE

Сообщение alex_ »

Да кстати была подобная идея, просто не предполагал как приёмник на неё отреагирует. Ну судя по сему первые 6 бит в первом байте пишем что попало, но лучше 000000 которые потом вылетят.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25167
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[uquote="alex_",url="/forum/viewtopic.php?p=4169810#p4169810"]просто не предполагал как приёмник[/uquote]
Приемнику фиолетово что там сдвигается во входном регистре. Этот регистр вообще может быть частью последовательной цепочки совершенно разных микросхем при их последовательном соединении. Все определяется в момент защелкивания данных. Что в этот момент будет в сдвиговом регистре, то и перепишется в выходной буфер приемника.
Тут не может быть никаких "мыслей". Это ТИПОВОЕ решение.
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Re: MPLAB X IDE

Сообщение serg_svd »

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

Код: Выделить всё

void __interrupt() ISR(void){

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

Пробовал найти в инструкции на компилятор этот ответ, не нашел. В сети тоже пробовал, но видимо неверно задаю вопрос. Надеюсь Вы меня тут поймете, о чем я спрашиваю. :beer:
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25167
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

Нет, не дает. В обработчике лучше вообще ничего не вызывать, а прямо инлайнить функции в его тело.
Вызов функции через указатель на этой платформе задействует вычисляемый переход. Это лишние накладные расходы в коде.
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Re: MPLAB X IDE

Сообщение serg_svd »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4178863#p4178863"]а прямо инлайнить функции в его тело.[/uquote]
Ну пока я так и сделал. Просто опыта с программированием PIC мало, а тут разработчики МСС со своим кодом меня озадачили. Думал это дает выигрыш в скорости в данном компиляторе.

Еще вопрос назрел.
Есть директива #define Идентификатор Подстановка, где в качестве подстановки стоит формула.
Где можно посмотреть, какое значение получит Идентификатор? Можно ли это глянуть в каком-нибудь файле или вывести как-то в сообщениях компилятора?
Это чисто для подстраховки мне сейчас понадобилось. Сейчас выкручиваюсь так: объявляю переменные, присваиваю им Идентификатор и в симуляторе смотрю полученные данные. Это несколько неудобно в плане того, что потом приходится подчищать код от лишнего мусора.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25167
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[uquote="serg_svd",url="/forum/viewtopic.php?p=4178882#p4178882"]Где можно посмотреть[/uquote]
Откройте листинг дизасма и там все увидите.
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Re: MPLAB X IDE

Сообщение serg_svd »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4178884#p4178884"]Откройте листинг дизасма и там все увидите.[/uquote]
Да в том то и дело, что я проверил через поиск все файлы внутри проекта. Особенно настойчиво искал в папке dist по Идентификатору. И не нашел. Какое расширение имеет файл дизасма? *.lst?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25167
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: MPLAB X IDE

Сообщение КРАМ »

[uquote="serg_svd",url="/forum/viewtopic.php?p=4179414#p4179414"]настойчиво искал в папке[/uquote]
Не надо искать.
Надо сходить в меню: Window-Debugging-Output. И если там нет листинга, то там есть причина его отсутствия, которую и нужно устранить.
Иной вариант поиска требуемого - просмотр Program Memory. Включаете в среде симулятор, ставите брейкпойнт в исходнике и находите этот же брейкпойнт в окне программной памяти.
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Re: MPLAB X IDE

Сообщение 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 указан другой мк. Но я его приложил для справки, поскольку он шел с библиотекой
Вложения
dbl_mpyf.zip
(2.04 КБ) 186 скачиваний
Последний раз редактировалось serg_svd Вт фев 15, 2022 13:48:56, всего редактировалось 1 раз.
Аватара пользователя
TrumPIC
Вымогатель припоя
Сообщения: 579
Зарегистрирован: Вт янв 02, 2018 11:34:41
Откуда: Украина.

Re: MPLAB X IDE

Сообщение TrumPIC »

Пардон, а нафига в проект на Си пихать вставки с математикой(!) на асме?? Для того люди на Си и переходят, чтобы извлечение квадратного корня из числа не набивать три сотни строчек кода..
От бобра добра не ищут!©
Аватара пользователя
serg_svd
Собутыльник Кота
Сообщения: 2560
Зарегистрирован: Ср янв 16, 2008 08:34:04
Откуда: KMV

Re: MPLAB X IDE

Сообщение serg_svd »

[uquote="TrumPIC",url="/forum/viewtopic.php?p=4181478#p4181478"]Пардон, а нафига в проект на Си пихать вставки с математикой(!) на асме??[/uquote]
Для скорости обработки потока данных. У данного мк нет аппаратного умножения. Если в коде будет куча операций умножения, то нет гарантии, что компилятор сделает оптимальный быстрый код.
Я не программист и не студент, но поставлена такая задача. Надо попробовать и сравнить потом по скорости обработки.
PS. и еще... Все математические библиотеки в компиляторе написаны под общую задачу и не оптимальны по скорости обработки и по коду.
Ответить

Вернуться в «PIC»