Нет смысла изображать из себя шиву многорукого, если у меня что то простое, то я это сделаю за пол часа на 8ми битной или АРМ-ардуинке. Для серьезных проектов у меня есть програмисты, которые как раз на СТМках и пишут. Не надо путать предназначение изделий, ардуино создавалась именно под очень быстрое прототипирование.isx писал(а):Если вы хоть иногда делаете сложные проекты, то лучше один раз научиться, чем всю жизнь страдать, а с даташитами тут все просто - у большинства STM все настройки периферии практически идентичны, так что выучив один камень можно применять любой другой без особых трудностей.
Подавление дребезга энкодера
Re: Подавление дребезга энкодера
Re: Подавление дребезга энкодера
С этим помочь не могу. С вашим проектом не знакомmichael-yurov писал(а):А потом еще пол дня убить, чтобы понять, что отключить этот чертов JTAG я не могу, потому что возникает конфликт с другой периферией, которую уже переназначить на новую ногу нельзя
Это кстати очень удобно на этапе планирования проекта. Сразу видно что это полноценная рабочая нога, а не системный отростокmichael-yurov писал(а):Зачем создавать таблицу соответствия названия и выполняемой функции?
Не спорю, но и возможностей там гораздо меньше.michael-yurov писал(а):AVR-ки в этом плане настраивались намного, намного проще.
А по поводу приблуд, я к ним скептически настроен. Предпочитаю работать напрямую, так отлаживать легче.
Мне на АВР-ках только пока приходилось дисплейчики цеплять. А вообще, проекты делаю не коммерческие, для дома, так сказать. То в гараже станок перевести на автомат, то к стенду панель управления с хитрыми калькуляторами присобачить, а когда скучно дребедень всякую собираю типа усилков, БП, контроллеров чего-нибудь и пр. Как раз и опыт на них набираюaftaev писал(а):У нас проекты больше связаны с пром. применением.
С ардуиной я вообще не работал, не знаю че там и как. Я даже простые проекты (пищалки, таймеры отключения) делаю на STM32. Пусть это, что называется "из пушки по воробьям", но мне то какая разница, если самая дешевая АВР-ка стоит так же.skyAlex писал(а): Не надо путать предназначение изделий, ардуино создавалась именно под очень быстрое прототипирование.
Ну мои изречения больше подходят для простых смертных, типа меня. у которых нет собственного программистаskyAlex писал(а):Для серьезных проектов у меня есть програмисты, которые как раз на СТМках и пишут.
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Подавление дребезга энкодера
У Ардуинки что хорошо есть удобные разъемы и шилды(платы). Купил экран, воткнул его в Ардуину и не нужно ничего паять. Хош Ардуину к инету подключить, покупаешь шилд Интернет за 7 баксов, втыкаешь в Ардуину и готовоisx писал(а):С ардуиной я вообще не работал, не знаю че там и как. Я даже простые проекты (пищалки, таймеры отключения) делаю на STM32. Пусть это, что называется "из пушки по воробьям", но мне то какая разница, если самая дешевая АВР-ка стоит так же.
Шилдов куча разных http://www.ebay.com/sch/i.html?_from=R4 ... o&_sacat=0
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Re: Подавление дребезга энкодера
Удобно наверное. У меня обычно если что-то становиться нужно, то нужно срочно и сейчас и делать приходится из того, что есть
.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Подавление дребезга энкодера
С телефона искать сложно, попробуй сам на st.com поискать в разделе про дев.тулс или про тот-же куб...michael-yurov писал(а):Не мог бы ткнуть меня носом?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Подавление дребезга энкодера
Такие-же шилды есть и 3-вольтовые и их разнообразие в разы больше, т.к. они подходят под все современные МК и FPGA, а не только под ардуины.aftaev писал(а):Шилдов куча разных
Кстати, 5-вольтовая логика сейчас сильно ограничивает применение ардуины - кучу интересной периферии не подключить к ней. Да и архитектура много чего не позволяет, например увеличить память подключив внешнюю DRAM.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: Подавление дребезга энкодера
Все это выясняется за пару минут брякпоинтами и просмотром регистров контролера через отладчикmichael-yurov писал(а):Может быть я неправильно назвал обработчик прерывания?, может быть что-то напутал в настройке приоритетов?, может быть сбрасываю не тот флаг прерывания, а нужный продолжает висеть?, может быть то прерывание, которое я выбрал не работает именно с этой ногой?
Что значит - оказывается? Разве можно делать хоть какой-то серьезный проект на контроллере без тщательного изучения этого контролера? Еще до составления принципиальной схемы, как раз для того, чтобы потом не было этих "оказывается ... уже переназначить на новую ногу нельзя"michael-yurov писал(а):сначала колонка с названиями ног, где данная нога фигурирует, как PB3, а потом оказывается есть вторая колонка, в которой все то же самое, кроме этого JTAG.
Очевидно, чтобы не создавать многострочные названия выводов, перечисляя все их функцииmichael-yurov писал(а):Зачем создавать таблицу соответствия названия и выполняемой функции?
Сама AVR намного, намного проще. Соответственно проще и настройка и документация к ней.michael-yurov писал(а):AVR-ки в этом плане настраивались намного, намного проще.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Подавление дребезга энкодера
Куда я должен поставить брейкпоинт, чтобы выяснить как должно называться нужное мне прерывание, и почему оно не срабатывает?AndyBig писал(а):Все это выясняется за пару минут брякпоинтами и просмотром регистров контролера через отладчик
Что я увижу в регистрах с помощью отладчика?
Пока что речь шла о том, что "тщательно изучить" эти контроллеры очень не просто.AndyBig писал(а):Что значит - оказывается? Разве можно делать хоть какой-то серьезный проект на контроллере без тщательного изучения этого контролера?
Нельзя. Не помню уже по какой причине, но нужна была именно эта нога (из за контроллера, а не разводки платы).AndyBig писал(а):Еще до составления принципиальной схемы, как раз для того, чтобы потом не было этих "оказывается ... уже переназначить на новую ногу нельзя"
Но проблема то в другом - я ведь и не предполагал, что на эту ногу не стоит вешать нужные мне функции просто потому что потом будет сложно разобраться, почему они не работают.
Неужели было где-то указано "не пользуйтесь этой ногой, если не хотите потрепать себе нервы".
С тем же успехом можно было их просто пронумеровать, что тоже логично.AndyBig писал(а):А называть выводы по именам соответствующих I/O-портов вполне логично.
А мне вот почему-то наоборот - когда увидел название PB3 пришло в голову, что это PB3. И как мне вообще могло такое в голову придти!AndyBig писал(а):Например, если я вижу, что вывод называется, к примеру, JTDO, мне и в горлову не придет, что этот вывод может работать еще и как обычный I/O. А видя по названию, что это вывод I/O, я буду как минимум подозревать, что у него есть и другие назначаемые функции, связанные с периферией.
Ч.Т.Д.AndyBig писал(а):Сама AVR намного, намного проще. Соответственно проще и настройка и документация к ней.
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: Подавление дребезга энкодера
Где угодно при условии создания к этому моменту гарантированных условий выполнения прерывания.michael-yurov писал(а):Куда я должен поставить брейкпоинт
Я (и некоторые из моих знакомых) перешел с AVR на ARM очень легко. Естественно, объем документации больше, есть свои нюансы, но при знании одного типа контроллеров освоить другой тип несложно. Главное - читать документациюmichael-yurov писал(а):Пока что речь шла о том, что "тщательно изучить" эти контроллеры очень не просто.
Лично я ни разу не сталкивался с тем, чтобы описанные в документации на контроллер функции не работали. Или чтобы исключения в их работе не были указаны в той же документации или Errata. Ни у Atmel, ни у ST, ни у Philips. А нужные Вам функции ведь были описаны в документации, правда?michael-yurov писал(а): я ведь и не предполагал, что на эту ногу не стоит вешать нужные мне функции просто потому что потом будет сложно разобраться, почему они не работают.
Нумерация у выводов и так имеетсяmichael-yurov писал(а):С тем же успехом можно было их просто пронумеровать, что тоже логично.
И в голову не пришло то, что у выводов может иметься куча альтернативных функций, что периферия умеет ремапиться?michael-yurov писал(а):А мне вот почему-то наоборот - когда увидел название PB3 пришло в голову, что это PB3
Это не требовалось доказывать, это и так понятноmichael-yurov писал(а):Ч.Т.Д.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Подавление дребезга энкодера
Ну так в этом и была проблема - прерывание не происходило, и я не понимал, какие условия я не выполнил и где искать.AndyBig писал(а):Где угодно при условии создания к этому моменту гарантированных условий выполнения прерывания.
Ну так, конечно, все есть в документации. Только у меня вычислительных способностей и объема памяти не хватает, чтобы все это в голове удерживать. И не хватает, чтобы помнить где что написано.AndyBig писал(а):Лично я ни разу не сталкивался с тем, чтобы описанные в документации на контроллер функции не работали. Или чтобы исключения в их работе не были указаны в той же документации или Errata. Ни у Atmel, ни у ST, ни у Philips. А нужные Вам функции ведь были описаны в документации, правда?
(вероятно по той причине, что это не моя основная работа, и, даже, не хобби, а разовая необходимость)
С номерацией все понятно 1, 2, 3,..AndyBig писал(а):Нумерация у выводов и так имеется Помимо названий
И с названиями понятно PA1,P A2, PA3,..
Не понятно было то, что названия PA1, PA2, PA3,.. и функция PA1, PA2, PA3,.. не одно и то же.
Потом, конечно, разобрался и навсегда запомнил, но как-то у меня мозг по другому работает - совсем не так, как у разработчиков.
Ну умеет, ну, хорошо, ну есть эти альтернативные функции, ну и фиг с ними. Меня то почему они должны были волновать - я пытался воспользоваться входом порта PB3, который был на ноге PB3.AndyBig писал(а):И в голову не пришло то, что у выводов может иметься куча альтернативных функций, что периферия умеет ремапиться?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Подавление дребезга энкодера
В даташите есть табличка, в которой перечислены все функции, которые может выполнять каждый вывод. Очевидно, что если включить какой-нибудь таймер, который пользуется этим выводом, то использовать его для чего-то ещё будет проблематично...michael-yurov писал(а):Ну умеет, ну, хорошо, ну есть эти альтернативные функции, ну и фиг с ними. Меня то почему они должны были волновать - я пытался воспользоваться входом порта PB3, который был на ноге PB3.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: Подавление дребезга энкодера
Про условия я имел в виду следующее: если прерывание должно быть, например, по изменению уровня на выводе, то просто руками изменяете уровень, останавливаете программу и смотрите регистрыmichael-yurov писал(а):Ну так в этом и была проблема - прерывание не происходило, и я не понимал, какие условия я не выполнил и где искать.
Дык не надо удерживать в голове всю документацию, главное - помнить основные моменты. Например, что почти все выводы имеют кроме основной функции I/O несколько альтернативных функций, связанных с периферией. Что одна и та же периферия может использовать разные выводы (ремапиться). Что после сброса у всех выводов назначаются функции по умолчанию. И т.д. На самом деле это по большей части общие принципы для большинства ARM-контроллеров. А за подробностями уже обращаетесь по необходимости к документации.michael-yurov писал(а):Ну так, конечно, все есть в документации. Только у меня вычислительных способностей и объема памяти не хватает, чтобы все это в голове удерживать.
Ну, это в любом микроконтроллере аналогично, даже в AVRmichael-yurov писал(а):Не понятно было то, что названия PA1, PA2, PA3,.. и функция PA1, PA2, PA3,.. не одно и то же.
Потому что они сидят на выводах того контроллера, с которым Вы работаетеmichael-yurov писал(а):ну есть эти альтернативные функции, ну и фиг с ними. Меня то почему они должны были волновать
-
SVP
- Мастер
- Сообщения: 6140
- Зарегистрирован: 19 дек 2012, 15:49
- Репутация: 884
- Откуда: Москва
- Контактная информация:
Re: Подавление дребезга энкодера
Всё не читал. Если всё еще есть проблемы с производительностью...
Ковырялся тут с динамической индикацией и 2560мегой.
Была цель заставить работать 6 цифр по 7 разрядов.
Результат: надо тщательно вычищать код. Нашел какую-то библиотеку дающую вместо стандартных
функций типа установить пин в позицию HI задефайненные макросы. Работает в 10 раз быстрее.
Если надо поищу название.
Любой дебаг-вывод в com-порт катастрофически всё подвешивает, т.е. на 0.1с или более.
Выражается в смаргивании всех разрядов.
Если писать крайне аккуратно, то килогерцы полагаю вполне можно получить.
Но вообще лучше-бы конечно это всё протестировать предварительно на производительность...
Ковырялся тут с динамической индикацией и 2560мегой.
Была цель заставить работать 6 цифр по 7 разрядов.
Результат: надо тщательно вычищать код. Нашел какую-то библиотеку дающую вместо стандартных
функций типа установить пин в позицию HI задефайненные макросы. Работает в 10 раз быстрее.
Если надо поищу название.
Любой дебаг-вывод в com-порт катастрофически всё подвешивает, т.е. на 0.1с или более.
Выражается в смаргивании всех разрядов.
Если писать крайне аккуратно, то килогерцы полагаю вполне можно получить.
Но вообще лучше-бы конечно это всё протестировать предварительно на производительность...
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: Подавление дребезга энкодера
По-моему, в AVR можно при включенной на выводе периферии работать с ним и как с простыми I/O - читать и задавать состояниеUAVpilot писал(а):Очевидно, что если включить какой-нибудь таймер, который пользуется этим выводом, то использовать его для чего-то ещё будет проблематично...
Хм... Помнится, Мега8 вполне себе успевала динамическую индикацию матрицы 96х8, одновременно обмениваясь с управляющим модулем по UART (принимая новые данные и команды, отвечая на запросы) и обсчитывая различные эффекты (сдвиги, разъезжание, появление изображения по точкам и т.п.).SVP писал(а):Ковырялся тут с динамической индикацией и 2560мегой.
Была цель заставить работать 6 цифр по 7 разрядов.
Результат: надо тщательно вычищать код.
Не знаю, что имеется в виду под стандартными функциями, но команда установки пина работает ну очень быстроSVP писал(а):Нашел какую-то библиотеку дающую вместо стандартных
функций типа установить пин в позицию HI задефайненные макросы. Работает в 10 раз быстрее.
Видимо, вывод в порт работает простым циклом "выдать символ в порт, подождать пока отправится, выдать следующий и т.д."SVP писал(а):Любой дебаг-вывод в com-порт катастрофически всё подвешивает, т.е. на 0.1с или более
Последний раз редактировалось AndyBig 20 авг 2015, 15:54, всего редактировалось 1 раз.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Подавление дребезга энкодера
Я так понимаю он про случай Arduino - там с производительностью совсем плохо, ибо позволяется программить практически не читая даташитов. А те, кто всё таки прочитал становятся гуру недосягаемого уровня.AndyBig писал(а):Хм... Помнится, Мега8 вполне себе успевала динамическую индикацию матрицы 8х16, одновременно обмениваясь с управляющим модулем по UART (принимая новые данные и команды, отвечая на запросы) и обсчитывая различные эффекты (сдвиги, разъезжание, появление изображения по точкам и т.п.).
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: Подавление дребезга энкодера
А, если так тогда понятноUAVpilot писал(а):Я так понимаю он про случай Arduino
ЗЫ: поднял тот проект - модули были 98х8, а не 16х8
С оптимизацией, кстати, особо не заморачивались, писали на C++ с использованием классов
А тут 6 индикаторов - проблемы?
-
SVP
- Мастер
- Сообщения: 6140
- Зарегистрирован: 19 дек 2012, 15:49
- Репутация: 884
- Откуда: Москва
- Контактная информация:
Re: Подавление дребезга энкодера
Да. Т.к. вроде бы у ТСа именно она, неUAVpilot писал(а):Я так понимаю он про случай Arduino
Неоднократно читал жалобы, что пока дочитаешь один даташит уже новый выходит.UAVpilot писал(а):практически не читая даташитов. А те, кто всё таки прочитал становятся гуру недосягаемого уровня.
Вникать во все это глубоко в подобной ситуации довольно бесперспективное занятие,
если не требуется приборов космической сложности.
3 минуты гугленья и 10 минут профайлинга и проблемы решены...AndyBig писал(а):А тут 6 индикаторов - проблемы? )
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: Подавление дребезга энкодера
Врут, даташиты не так часто обновляются, да и обновления в них носят скорее косметический характерSVP писал(а):Неоднократно читал жалобы, что пока дочитаешь один даташит уже новый выходит.
А вот ерраты - да, их желательно иметь всегда свежие
Если придерживаться тематики форума, то это можно сравнить с тем, как человек, не вникая в теорию и расчеты, строит станок - на глазок, как получится и из чего бог пошлетSVP писал(а):Вникать во все это глубоко в подобной ситуации довольно бесперспективное занятие,
если не требуется приборов космической сложности.
-
SVP
- Мастер
- Сообщения: 6140
- Зарегистрирован: 19 дек 2012, 15:49
- Репутация: 884
- Откуда: Москва
- Контактная информация:
Re: Подавление дребезга энкодера
Да, как щаз помню, ножки какие-то местами поменялись итпAndyBig писал(а):Врут, даташиты не так часто обновляются, да и обновления в них носят скорее косметический характер
Небольшие такие переделочки.
Если придерживаться здравого смысла, то микроскоп плохая вещь для забивания гвоздей.AndyBig писал(а):Если придерживаться тематики форума, то это можно сравнить с тем, как человек, не вникая в теорию и расчеты, строит станок - на глазок, как получится и из чего бог пошлет Да, станок таким образом можно сделать, но он не будет ни быстрым, ни точным, ни жестким
Попытки некоторых специалистов работающих с эмбеддед представить всех остальных "последним чмом" только
потому, что они сами не смогли решить поставленной задачи без чтения 10000 страниц даташитов, а "остальные"
смогли всегда навевают на меня грусть.
Три года изучать тонкости, чтобы на выходе сделать счетчик на сигнал в 1кГц лично мне видится
крайне тупым просиранием жизни... мне гораздо интереснее сделать его за три часа и двигаться дальше.
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: Подавление дребезга энкодера
Это где такое было? Что, вот взяли и поменяли у контроллера ноги, продолжив выпускать его под старым именем?SVP писал(а):Да, как щаз помню, ножки какие-то местами поменялись итп
Угу, лучше гвозди забивать 10-тонным молотомSVP писал(а):Если придерживаться здравого смысла, то микроскоп плохая вещь для забивания гвоздей.
Нехорошими словами вроде бы никто тут не обзывался... А над остальным посмеялся, спасибоSVP писал(а):Попытки некоторых специалистов работающих с эмбеддед представить всех остальных "последним чмом" только
потому, что они сами не смогли решить поставленной задачи без чтения 10000 страниц даташитов, а "остальные"
смогли всегда навевают на меня грусть.
Три года на изучение микроконтроллера??? Тяжело, наверное, таким тугодумам в жизни приходитсяSVP писал(а):Три года изучать тонкости, чтобы на выходе сделать счетчик на сигнал в 1кГц лично мне видится
крайне тупым просиранием жизни... мне гораздо интереснее сделать его за три часа и двигаться дальше.
Три часа на простой счетчик? Серьезно? И Вы еще говорите о какой-то скорости разработки для Ардуино?