Страница 34 из 40
Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:14:40
nahimovv
Леонид Иванович писал(а):возьму системный тик 1 мс, по нему буду через SPI загружать регистры. Никаких прерываний
Уф! А SysTick разве не использует прерываний? Или постоянная "собака за хвостом"?

Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:22:58
Леонид Иванович
Я имею в виду, что динамическая индикация не по прерываниям. SysTick использует прерывания. Но там только инкремент счетчика - и всё. Чтобы программные таймеры организовывать.
Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:25:36
Alexeyslav
Ей-богу, вас очень увлекательно читать. Но вы несколько забываете для чего нужна ардуина как таковая. Нужна она в первую очередь для сборки ПРОТОТИПОВ, когда просто некогда и нет смысла разрабатывать уникальную плату, когда может в процессе творчества сменится набор датчиков и их разводка. Неужели здорово для каждого изменения переделывать плату?
Оттуда и идут всякие простейшие платы с двумя резисторами - не надо ничего паять подключил к разъему и делов, нужен другой коэффициент - берешь другую плату, нужно подстроить делитель на точный коэффициент - берешь третью. При этом не надо ничего пилить и паять.
А то что некоторые начинают использовать платы в своих проектах - это исключительно их дело, более того если стоимость их устраивает, то какое наше дело?
Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:26:52
nahimovv
Леонид Иванович писал(а):"Пнул, а дальше оно само" - так тоже можно, но зачем? Разгрузим процессор, а что ему останется делать?
Конечно можно! При инициализации дисплея HD44780 понадобится один таймер и два канала DMA, при работе - два таймера и один канал DMA.
Что делать? Да что угодно - обрабатывать прерывания, мониторить что-нибудь, заниматься вычислениями и расчётами... да раскрашивать биты регистров цветными фломастерами, в конце концов!

Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:29:45
nahimovv
Леонид Иванович писал(а):Я имею в виду, что динамическая индикация не по прерываниям. SysTick использует прерывания. Но там только инкремент счетчика - и всё. Чтобы программные таймеры организовывать.
Прикалываетесь? Зачем "программные таймеры", если есть хардварные! А их куда, солить?

Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:32:36
Леонид Иванович
Не так много таймеров и каналов DMA в младших моделях STM32, чтобы ими так разбрасываться. Да и зачем такая сложность, если можно реализовать софтовый обмен, процессору реально нечего делать.
А программных таймеров в проекте используется куча, десятки, где столько хардварных взять? И главное, зачем? реализация софтового таймера на основе счетчика в прерывании SysTick проста и красива. А эту тучу хардварных таймеров нужно инициализировать. Да и точности там обычно не нужны, это обычно какие-то задержки в интерфейсе пользователя. Хардварные таймеры там не к месту.
Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:36:06
dosikus
Леонид Иванович писал(а): Да и зачем такая сложность
Реально сложно это выглядит только на SPL , а так - десяток, полтора строк ...
Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:36:22
nahimovv
Alexeyslav писал(а):Ей-богу, вас очень увлекательно читать. Но вы несколько забываете для чего нужна ардуина как таковая.
А она кому-то ещё нужна, зачем? Не верю!
А то что некоторые начинают использовать платы в своих проектах - это исключительно их дело, более того если стоимость их устраивает, то какое наше дело?
Никакого! Был тут один ардунист-задрот, бредил тут потихоньку, два слова связать не мог, пускал пузыри, так с газами весь и вышел.

Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:43:17
Леонид Иванович
dosikus писал(а):Реально сложно это выглядит только на SPL , а так - десяток, полтора строк ...
Конструкции вида TIM3->CCMR1 |= (TIM_CCMR1_CC1S_0 | TIM_CCMR1_IC1F_0 | TIM_CCMR1_IC1F_1); тоже выглядят не лучшим образом.
Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:44:45
dosikus
Это с непривычки , после пары месяцев все нормализуется...

Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:47:01
nahimovv
Леонид Иванович писал(а): Хардварные таймеры там не к месту.
Тогда я соглашусь с
dosikus, что "Атмэл - это диагноз!"!

Re: Кто сам изучил програмирование мк?
Добавлено: Сб фев 01, 2014 23:51:34
Леонид Иванович
Интересно, а почему нельзя использовать софтовые таймеры там, где они подходят? Может наоборот, попытка задействовать всю периферию, которая даже не нужна (повысив при этом до максимума потребление) - это диагноз STM32?
Re: Кто сам изучил програмирование мк?
Добавлено: Вс фев 02, 2014 00:01:04
nahimovv
Леонид Иванович писал(а):Интересно, а почему нельзя использовать софтовые таймеры там, где они подходят?
Кто сказал что нельзя? Только зачем впрягать сюда те же индикаторы вашего БП... не пойму! Зачем засирать безбожно SysTick?
Может наоборот, попытка задействовать всю периферию, которая даже не нужна (повысив при этом до максимума потребление) - это диагноз STM32?
"Что, опять?"(С)

Re: Кто сам изучил програмирование мк?
Добавлено: Вс фев 02, 2014 00:03:53
Леонид Иванович
nahimovv писал(а):Зачем засирать безбожно SysTick?
Не понял, как это? В прерывании SysTick инкрементируется один счетчик. И всё. Что опять не так?
Re: Кто сам изучил програмирование мк?
Добавлено: Вс фев 02, 2014 00:21:46
nahimovv
Не надо закрывать люк и заводить двигатель танка! Вы говорили, что у вас десятки софттаймеров! Где они у вас обрабатываются/мониторятся?
Re: Кто сам изучил програмирование мк?
Добавлено: Вс фев 02, 2014 00:32:01
Леонид Иванович
При старте программного таймера захватывается значение SysTick-овского счетчика. Затем внутри задачи, где используется этот таймер, вызывается функция, которая сравнивает разницу между текущим и захваченным значением с установленным интервалом. Если разница больше интервала, производится действие, для которого этот таймер был предназначен.
Re: Кто сам изучил програмирование мк?
Добавлено: Вс фев 02, 2014 00:40:19
a5021
Леонид Иванович писал(а):Может наоборот, попытка задействовать всю периферию, которая даже не нужна (повысив при этом до максимума потребление) - это диагноз STM32?
Это тяжелое наследие голодного детства. У него 48 мегагерц под капотом, а он хлебные корки по углам ныкает.
Re: Кто сам изучил програмирование мк?
Добавлено: Вс фев 02, 2014 00:47:52
nahimovv
Понятно. Если у вас автомат состояний, то тем более динамическую индикацию лучше делать хардварной. А если у вас вызов функций последовательный, то это по сути тривиальный delay. Если МК имеет DWT, то лучше микросекундные задержки делать на нём (на электрониксе обсуждалось), если нет... кто во что гаразд. Кучу 1WIRE можно по таймеру/таймер+DMA с порта обрабатывать (до 16).
Re: Кто сам изучил програмирование мк?
Добавлено: Вс фев 02, 2014 00:54:58
abc
a5021 писал(а):Это тяжелое наследие голодного детства. У него 48 мегагерц под капотом, а он хлебные корки по углам ныкает.
Что-то мне подсказывает, что вы и с 480-ю мегагерцами не будете знать что делать.
Есть уже 8-ядерный пропеллер с 80MHz на ядро. Только проектов на нем едва ли с полдесятка.
Неучи, помигав светиком и подрыгав лапками, ждут еще большую крутотень. Чтоб, вдоволь натрахавшись с писанными наспех кривыми либами, снова светиком помигать. В 10 раз быстрее ))))
Re: Кто сам изучил програмирование мк?
Добавлено: Вс фев 02, 2014 00:56:23
nahimovv
a5021 писал(а):
Это тяжелое наследие голодного детства.
100% ! Деревянные машинки размером с табурет, а теперь деревянные ардуины для злобных дубовых буратин!
Гавкнул? Под лавку! И не забывай вылазить периодически, а то ещё задохнёшься ненароком!
