реклама на сайте
подробности

 
 
> Подпрограмма обработки энкодера на ассемблере
Игoрь
сообщение Jan 12 2014, 08:02
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 15-05-13
Пользователь №: 76 836



Если вдруг у кого есть кусок кода с антидребезгом, поделитесь кому не жалко. Лениво тратить время на исследования задержек по антидребезгу
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Игoрь
сообщение Jan 13 2014, 08:21
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 15-05-13
Пользователь №: 76 836



мысль не нова и безусловно интересна. Но на мой взгляд наполняемость устройства различными функциями самодиагностики возможна только в процессе эксплуатации, накоплении опыта по непредвиденным ситуациям и их анализу. На этапе разработки практически невозможно учесть всё. И всегда стоит вопрос, насколько есть необходимость в этой самодиагностике?
Лично я сторонник таких устройств, которые бы железобетонно работали при любых непредвиденных ситуациях безо всяких остановок по малейшему чиху. Кроме того, я сторонник того, чтобы обходиться минимальными средствами для того, чтобы устройство могло выполнять свои функции. Попробую пояснить что я имею в виду.
1. Как я уже писал выше, я просил кусок кода для управления LED-драйвером с помощью ШИМ. Регулировка ШИМ планируется осуществляться от энкодера. Можно было бы для этих целей использовать ATMEGу, просто так на всякий случай, завести кучу цепей для диагностики светодиодов, источника питания, самого драйвера, написать код на С. Я предпочитаю использовать Tiny13A, написать код на ассемблере и держать тиньку большую часть времени в спящем режиме.
2. Следующий пример. Мне по работе достался проект от предыдущего разработчика. Устройство должно формировать определённые запросные импульсные последовательности, принимать ответы на эти запросы, декодировать ответы, проверять их на корректность и передавать в компьютер. Мне были переданы схема, разведённые платы, недописанная программа. Схема как и положено ей быть серьёзная, с ATMEGA256, жирной ПЛИСиной. По сути я дописывал кусок программы, который и должен был осуществлять необходимый функционал с импульсами. Предыдущий разработчик сильно затянул время разработки проекта и в конце концов уволился. Доделывая проект я пришёл к следующим выводам- во-первых программа была перегружена функциями самодиагностики, при этом по требующимся функциям написано было очень мало. Зато самодиагностика в некоторые моменты сама давала сбои. А во-вторых устройство можно было бы сделать значительно более простым. Хватило бы и одного контроллера с меньшим количеством выводов.

Подведу итог. Всё мною написанное говорит о том, что разработчик в первую очередь должен сосредоточиться на тех функциях, которые должно выполнять устройство. Сначала нужно запустить устройство, а потом уже смотреть, есть ли время, возможность и необходимость добавлять дополнительные фичи.
Go to the top of the page
 
+Quote Post
Abell
сообщение Jan 13 2014, 09:20
Сообщение #3


профессиональный дилетант
****

Группа: Участник
Сообщений: 866
Регистрация: 16-03-06
Из: Шебекино - Лысьва - Тюмень
Пользователь №: 15 292



Цитата(Игoрь @ Jan 13 2014, 12:21) *
Схема как и положено ей быть серьёзная, с ATMEGA256, жирной ПЛИСиной. По сути я дописывал кусок программы, который и должен был осуществлять необходимый функционал с импульсами. Предыдущий разработчик сильно затянул время разработки проекта и в конце концов уволился. Доделывая проект я пришёл к следующим выводам- во-первых программа была перегружена функциями самодиагностики, при этом по требующимся функциям написано было очень мало. Зато самодиагностика в некоторые моменты сама давала сбои.
...
Сначала нужно запустить устройство, а потом уже смотреть, есть ли время, возможность и необходимость добавлять дополнительные фичи.

Не мое, точно, с ПЛИС не работаю laughing.gif
По длительному опыту работы с ЧПУ могу сказать - пренебрежение потенциальным отказом энкодера может привести к катастрофе. У поворотных энкодеров есть "запрещенное состояние", в случае которого система должна давать немедленный безусловный "стоп", это еще на уровне электроавтоматики.
В подобной задаче у меня контроллер постоянно пишет в глобальную переменную тайминг сигнала энкодера, по нему определяется скорость и косвенно - состояние энкодера. Хотя, у меня энкодер оптический, там дребезга-то нет laughing.gif
Сделать сначала функционал, а потом самодиагностику - согласен, так и делаю. Только на всем этапе разработки держу в уме, как это сделать, чтоб потом не перелопачивать заново схему и код laughing.gif


--------------------
Скоро дело сказывается, да не скоро сказка делается, или тише будешь - дальше уедешь...

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Игoрь   Подпрограмма обработки энкодера на ассемблере   Jan 12 2014, 08:02
- - A. Fig Lee   Цитата(Игoрь @ Jan 12 2014, 03:02) Если в...   Jan 12 2014, 17:06
- - Игoрь   да вот начитался теории, даже рисунки кто-то приво...   Jan 12 2014, 18:11
- - rx3apf   Обсуждалось уже, неоднократно. Воспользуйтесь поис...   Jan 12 2014, 18:14
|- - A. Fig Lee   Цитата(rx3apf @ Jan 12 2014, 13:14) Для м...   Jan 12 2014, 19:19
|- - rx3apf   Цитата(A. Fig Lee @ Jan 12 2014, 23:19) П...   Jan 12 2014, 19:45
- - Игoрь   попробую пояснить, чего я хочу- мне нужен не алгор...   Jan 12 2014, 18:34
- - Игoрь   без дребезга при наличии сглаживающих емкостей? Ил...   Jan 12 2014, 19:26
|- - A. Fig Lee   Цитата(Игoрь @ Jan 12 2014, 14:26) без др...   Jan 13 2014, 01:12
- - Abell   Еще когда начинал практически работать с AVR, ввел...   Jan 13 2014, 04:29
- - A. Fig Lee   Какое отношение к енкодеру имеют последние 3 ответ...   Jan 13 2014, 13:45
- - Игoрь   косвенное Раз нет желающих помочь мне с кодом для...   Jan 13 2014, 15:56
|- - ILYAUL   Цитата(Игoрь @ Jan 13 2014, 19:56) косвен...   Jan 13 2014, 18:08
- - Игoрь   я же не просил тыкать меня носом в поисковик. Тема...   Jan 13 2014, 18:38
- - ILYAUL   Вы представляете , а там есть код и не один. Ну жд...   Jan 13 2014, 18:45
- - Игoрь   вы представляете, а я и до вашего совета искал, и ...   Jan 14 2014, 05:05
- - rx3apf   Эта тема неоднократно обсуждалась на форуме. Вам л...   Jan 14 2014, 09:55
- - ILYAUL   ЦитатаНо они меня не устроили своей громоздкостью,...   Jan 14 2014, 10:11
|- - Игoрь   Цитата(ILYAUL @ Jan 14 2014, 14:11) А что...   Jan 14 2014, 11:09
- - ViKo   Опрашиваю периодически (часто) по таймеру состояни...   Jan 14 2014, 11:37
|- - A. Fig Lee   Цитата(ViKo @ Jan 14 2014, 06:37) Опрашив...   Jan 14 2014, 12:47
|- - ViKo   Цитата(ViKo @ Jan 14 2014, 14:37) Сравнив...   Feb 3 2014, 09:20
|- - Maik-vs   Код так код. Вот: Код; ;==========================...   Mar 20 2014, 03:55
- - Navovvol   CODE .def count_VERY_HIGHT = R22 .def coun...   Jan 30 2014, 10:52
|- - kolobok0   Цитата(Navovvol @ Jan 30 2014, 14:52) COD...   Feb 2 2014, 10:29
- - Игoрь   спасибо. Именно такого ответа я и ожидал!   Feb 2 2014, 05:28


Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 08:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016