Перейти к содержанию

Программирование Мк Требует Знаний Железа?


Рекомендуемые сообщения

Ну свое мнение я уже выразил!

Нельзя делать что-то не понимая и не представляе себе то с чем ты это что-то решил делать!

Если надо программить МК - то нужно знать где у него какая лапка и для чего и как к етой лапке что либо подключить! Что бы написав код - получить результат!

А так - ну так тогда можно "программить" на листике в клеточку с тем же успехом.

Главное первой строкой написать //программа для МК

коплю на мечту - Днепр К750

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

А если взять ПК без операционной системы, то уже нужно будет знать электрическую часть чтоле? Да, там есть сервис биос, но его можно успешно проигнорировать. Для успешной работы без ОС достаточно знать к каким портам и областям памяти подключены устройства ПК ну и разумеется знать, что за что отвечает.

Ну например знание что к чему подключается и на каких шинах сидит - это уже схемотехника. Не спорю, что самому создавать схемы не надо, т.к. ПК это уже завершенное устройство. Но если сравнивать МК и ПК, то, грубо говоря, в МК Вы как раз и пишите БИОС,

Можно программировать и не зная вообще ни языков программирования, ни схемотехники, те же ПЛК или блочное программирование. Но опять же, кому такой специалист нужен? который может написать прошивку только к полностью готовому устройству, к которому полностью дано детальное ТЗ с описанием принципа работы каждого устройства в схеме...

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Ну например знание что к чему подключается и на каких шинах сидит - это уже схемотехника.

Ну я чёткого определения слову "схемотехника" не знаю, но могу сказать, что в контексте программирования там "схемотехникой" и не пахнет, даже если это физически существующие объекты. Есть порт, есть биты порта, которые влияют на определённые узлы. Когда я это всё ковырял, я понятия не имел ни о каких шинах, и имел весьма мутное представление о том, что там вообще происходит. Однако мне это не мешало пищать пищалкой, переключать страницы видеопамяти, и считывать CMOS память биоса, потому что у меня были достаточно подробные описания ЛОГИКИ работы того или иного узла, но никак не электрических сигналов и прочему, что там через них проходит. :unknw: - я занимался программированием, а не схемотехникой - факт.

Но опять же, кому такой специалист нужен?

Ну специалист такой конечно не нужен. Но с другой стороны у людей встречается довольно много глубоких знаний, которые они профессионально никогда не применяли.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

...но когда это массивная программа с кучей всяких задач - ассемблер тут уже нерационален...

Вот тут не хочу соглашаться. Массивной программой прошивку делают компиляторы с языков высокого уровня. Например, с того же Си. И не надо меня убеждать в возможности изменений уровня оптимизации кода. Программы выходят массивные и неповоротливые по сравнению с ассемблером. На Ассме решить одну и ту же задачу можно несколькими способами. Все зависит от подхода к реализации данного решения (как на мелкой логике, одно и то же устройство можно выполнить по нескольким вариантам схем). Писатели на Си ограничены возможностями библиотек и решают алгоритм линейно, в лоб. Возможно на меня многие обидятся, но мозги при таком программировании "жиреют". Нет оригинальности, только скорость в "погоне за добычей".

Ссылка на комментарий
Поделиться на другие сайты

Если устройство разрабатывает один человек - без схемотехники никак, надо же хотя бы понимать, почему устройство вдруг не перестало работать, когда его перенесли из одного угла в другой, в которой проходит силовой кабель, а на всех конденсаторах, а заодно подтяжке RESET'а сэкономили. Ведь в том углу все работало!

С программированием тоже самое. Можно не пользоваться ассемблером, но знать его обязательно. А то можно потом удивляться, почему _delay_ms(x) занимает в несколько раз больше места, чем _delay_ms(5) или почему программа, в которой постоянно используются дробные числа не помещается в контроллер.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Массивной программой прошивку делают компиляторы с языков высокого уровня.

Да, делают. Но я вообще то не об этом. Я о массивной программе в плане разнообразия исполняемых ей функций. Например обслуживание сложного юзер-интерфейса с менюшками и прочим, при этом выполнение ряда "параллельных-фоновых" задач и плюс реакция на действия пользователя ещё. Можно писать и на азме - может быть оно даже и лучше - компактней же. То, что на это полгода уйдёт - с вашим подходом можно не учитывать.

На Ассме решить одну и ту же задачу можно несколькими способами.

А на языках высокого уровня нельзя? :lol2:

Писатели на Си ограничены возможностями библиотек и решают алгоритм линейно, в лоб.

Приведите пример. Писатель Си писателю Си - рознь. Сейчас навскидку 99% всего мирового машинного кода скомпилирован именно из Си. А раз миру си достаточно, какие можно выводы из этого сделать? И потом, что мешает в том же Си сделать азмовую вставку в случая "щекотливого места" ?

Возможно на меня многие обидятся, но мозги при таком программировании "жиреют". Нет оригинальности, только скорость в "погоне за добычей".

Кому нужна оригинальность, скрытая от глаз. Это то же программирование-ради-программирования. Если программист будет морочить голову с оригинальностью каких-то решений, которые только ему ведомы - он рискует без штанов остаться (начальника или заказчика вообще не волнует, что внутри, ему рабочий проект нужен).

По поводу "жира" это Вы зря. На МК особо не пожируешь, потому что тесно - придётся думать. А проекты на ПС могут такой тяжестью обладать, что даже на языке, который намного сильнее оторван от реальности, чем Си - приходится поморочить голову. Нет там никакого жира - ни в МК, ни в PC!

Ссылка на комментарий
Поделиться на другие сайты

tcoder,

не будем тут спорить. Ваш пример не так уж сложен для Ассма. 1-2мес возни, что не так и много для серьезного проекта. У меня есть и сложнее и при этом соблюдается многозадачность (как бы это не звучало для МК). И все это умещается в Mega8 так, что почти половина флеш остается свободной. Сомневаюсь, что подобное можно написать на Си в таком же размере.

Я не пишу для мира. Я, в некотором роде, эстет. Поэтому и стараюсь выжимать из МК по максимуму. Оригинальность решения, в моем смысле, должна быть не только программная (что не видно пользователю), но схемная (что в купе с софтом и есть полный результат работы).

Подкину вам задачку. У вас есть четыре линии порта (всего!) и требуется управлять двустрочным символьным дисплеем и работать с клавиатурой (хотя бы) на 8 клавиш. Решите это на Си (не применяя оригинальности). :)

Ссылка на комментарий
Поделиться на другие сайты

И все это умещается в Mega8 так, что почти половина флеш остается свободной.

Лично я бы пожертвовал второй половиной флеш памяти ради увеличения скорости разработки. Ведь память на то и память. Зачем добру пропадать?

Подкину вам задачку. У вас есть четыре линии порта (всего!) и требуется управлять двустрочным символьным дисплеем и работать с клавиатурой (хотя бы) на 8 клавиш. Решите это на Си (не применяя оригинальности). :)

Тут Вы конечно правы, что если линии всего 4, то придётся городить что-то расширительно-коммутирующее снаружи, что в свою очередь исключает использование стандартных библиотек. При таком раскладе приимущества Си стираются, поскольку придётся выполнять те же махинации, что и на ассемблере. Времени это займёт приблизительно столько же и вероятно даже компилят этого кода будет приближен к ассемблерному. Насколько мне известно, простая логика-арифметика, сдвиги, записи и чтения портов любым компилятором Си почти идеально транслируются.

Если Вашей целью было именно на это указать - то ваш ход мыслей понятен.

Теперь подойдем с практической стороны: лучше поставить один многоногий корпус и не парится, нежели несколько корпусов поменьше и ещё усложнять из-за этого общую схему и программу.

P.S. Под 8-ми битные МК я на Си не писал и поэтому не ознакомлен с возможностями и степенью гибкости стандартных библиотек. Однако имел возможность оценить, что ассемблер - накладен даже в простых проектах и на сях дело пошло бы быстрее. Первое, что я сделал на МК на пробу - модель лифта с лампочками на каждом этаже, кнопками вызова для каждого этажа. Лифт плавно трогался и останавливался, были два калибровочных концевика внизу и вверху и оптический энкодер на приводе с помощью которого он ориентировался в "средних" этажах. Так вот - на ассемблере это делать оказалось очень накладно. Одна только отладка сильно затягивается - ошибку на порядок сложнее найти, отсутствие чисел с плавающей точкой вообще сделало жизнь весёлой. На сях бы это в 10 раз быстрее можно было бы сделать без заморочек. Второе, что я делал - это контроллер для RGB-ленты. Тоже было весело, особенно с плавными переходами между цветами на программном то шиме. На сях опять же всё быстрее пошло бы. Благо другие мои "поделки" были попроще и тут уже несильно заметно. И всё равно чтобы на азме эффективно писать, предварительно нужно обнестись собственными "библиотеками". В этом я ещё со времён PC убедился. Как голый язык - он нерационален.

Ссылка на комментарий
Поделиться на другие сайты

...Массивной программой прошивку делают компиляторы с языков высокого уровня... ...мозги при таком программировании "жиреют". Нет оригинальности, только скорость в "погоне за добычей".

+1

...Сейчас навскидку 99% всего мирового машинного кода скомпилирован именно из Си...

И навскидку эти же 99% не написаны, а стянуты, например, из Интернета. Как-то работает - и ладно.

...Кому нужна оригинальность, скрытая от глаз. Это то же программирование-ради-программирования. Если программист будет морочить голову с оригинальностью каких-то решений, которые только ему ведомы - он рискует без штанов остаться (начальника или заказчика вообще не волнует, что внутри, ему рабочий проект нужен)...

Когда есть какая-то нестандартная задача, к которой библиотеку не найдешь за пару кликов - от тут и вспомнишь про оригинальность....

...Первое, что я сделал на МК на пробу - модель лифта с лампочками на каждом этаже, кнопками вызова для каждого этажа. Лифт плавно трогался и останавливался, были два калибровочных концевика внизу и вверху и оптический энкодер на приводе с помощью которого он ориентировался в "средних" этажах. Так вот - на ассемблере это делать оказалось очень накладно. Одна только отладка сильно затягивается - ошибку на порядок сложнее найти, отсутствие чисел с плавающей точкой вообще сделало жизнь весёлой. На сях бы это в 10 раз быстрее можно было бы сделать без заморочек...

Такие "модели лифта" делаются за две-три недели вместе с платой и без "чисел с плавающей точкой" (кстати, а зачем они там вообще?).

...Второе, что я делал - это контроллер для RGB-ленты. Тоже было весело, особенно с плавными переходами между цветами на программном то шиме...

На Atmega48 64RGB-LED (т.е. 192 канала 8-битного программного ШИМ)+ по SPI данные получение/трансляция. За несколько (меньше недели) вечеров. Без особого напряга и "веселья".

Изменено пользователем forever_student

Нет слова "не могу", есть слово "не хочу"...

Ссылка на комментарий
Поделиться на другие сайты

...Сейчас навскидку 99% всего мирового машинного кода скомпилирован именно из Си...
Даже под контроллеры, где из выбора языков - асм да си, на последнем едва ли 50%, а ведь есть извращенцы, пишущие на всяких паскалях-бейсиках.

Для более мощных процессоров, начиная, пожалуй, с мощных ARM, разнообразие языков и задач еще больше. Асма там гораздо меньше, зато появляется туча как Си-подобных языков (java, моно/C#), так и других (те же паскали-бейсики, питон). Так что там пожалуй меньше 50%.

Когда есть какая-то нестандартная задача, к которой библиотеку не найдешь за пару кликов - от тут и вспомнишь про оригинальность....
Или стандартная задача, но с нестандартными ограничениями. Например, можно снизить точность, но чтобы влезло в память или в быстродействие.
На Atmega48 64RGB-LED (т.е. 192 канала 8-битного программного ШИМ)+ по SPI данные получение/трансляция. За несколько (меньше недели) вечеров. Без особого напряга и "веселья".
А можно поподробнее?
Подкину вам задачку. У вас есть четыре линии порта (всего!) и требуется управлять двустрочным символьным дисплеем и работать с клавиатурой (хотя бы) на 8 клавиш. Решите это на Си (не применяя оригинальности). :)
А не проще взять контроллер с большим количеством ног, чтобы не городить схемы расширения? Ни по размерам платы, ни по стоимости изделия на этом особо не выиграть.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

...А можно поподробнее?...

Atmega48 (P, PA) на 20МГц

Матрица LED 8х24 (т.е. квадрат 8х8 RGB)

Программа занимает чуть более 1,5кБайт флэша и всю память RAM.

...А не проще взять контроллер с большим количеством ног, чтобы не городить схемы расширения? Ни по размерам платы, ни по стоимости изделия на этом особо не выиграть.

Imho, здесь много зависит от контроллера дисплея и схемы клавиатуры. Вполне может оказаться, что вся схема расширения - несколько резисторов и (или) диодов.

Нет слова "не могу", есть слово "не хочу"...

Ссылка на комментарий
Поделиться на другие сайты

И навскидку эти же 99% не написаны, а стянуты, например, из Интернета. Как-то работает - и ладно.

Дело не в том, откуда они взяты, а в том, на чём скомпилированы. Работает не "как-то", а вполне нормально. Речь не о поделках, а о промышленных рабочих устройствах.

Когда есть какая-то нестандартная задача, к которой библиотеку не найдешь за пару кликов - от тут и вспомнишь про оригинальность....

Об этом я уже написал.

Такие "модели лифта" делаются за две-три недели вместе с платой и без "чисел с плавающей точкой" (кстати, а зачем они там вообще?).

Я её сделал за 4 дня вместе с механикой, начиная с нулевыми знаниями по МК и очень приблизительными в электронике. Что-то у Вас какое-то представление о сроках искажённое. Касательно плавающей точки: Вы пост хорошо прочитали? Лифт должен плавно трогать и останавливать. Т.е. заведомо до остановки начать плавное снижение скорости по кривой и по той же кривой разгоняться. Решение без плавающей точки получилось грубоватым, хотя это и не очень заметно.

На Atmega48 64RGB-LED (т.е. 192 канала 8-битного программного ШИМ)+ по SPI данные получение/трансляция. За несколько (меньше недели) вечеров. Без особого напряга и "веселья".

Основные пляски были с плавным переходом между заданными RGB. Без плавающей точки задача опять получается весьма грубой.

Схема должна была плавно "перетекать" цвета, записанные в EEPROM. SPI причём?

Ссылка на комментарий
Поделиться на другие сайты

Лично я бы пожертвовал второй половиной флеш памяти ради увеличения скорости разработки. Ведь память на то и память. Зачем добру пропадать?

Теперь подойдем с практической стороны: лучше поставить один многоногий корпус и не парится, нежели несколько корпусов поменьше и ещё усложнять из-за этого общую схему и программу.

Лично я не уверен, что скорость разработки прямопропорциональна скорости работы полученного изделия. И считаю неуместными утверждения о быстродействии программы, в состав которой включена библиотека delay.h.

Конечно же можно взять многоногий корпус с бОльшим объемом памяти программ, но ведь тактовая у него будет та же. Быстродействия это не добавит, а значит и применение "тяжелого" камня на простых задачах неоправдано (разве что невозможностью впихнуть в него "ленивую" прошивку). Если посмотреть с практической стороны, для себя применить бОльший камень (в одноразовой конструкции) можно. А как для партии в 1000 шт (100 000шт!)? Разница стоимости МК даже в 10руб даст потери на закупке комплектующих 10000руб (1000 000руб!). Вы хорошо живете, чтобы кидаться деньгами? Благо если не своими, а ну как наоборот.

Ссылка на комментарий
Поделиться на другие сайты

Лично я не уверен, что скорость разработки прямопропорциональна скорости работы полученного изделия... delay.h ...

Я речи о быстродействии программы не вёл. Как и про delay.h. И потом, далеко не все микропрограммы требуют мегабыстродействия.

И считаю неуместными утверждения о быстродействии программы, в состав которой включена библиотека .

Ничего не было мной сказано про быстродействие и- за библиотеки. И потом, чем библиотека хуже самописных азмовых функций по быстродействию? Парой микросекунд? Особенно если в качестве расширителя ваших четырёх линий используется преобразователь из последовательного в параллельный - о быстродействии вообще можно было бы промолчать.

А как для партии в 1000 шт (100 000шт!)? Разница стоимости МК даже в 10руб даст потери на закупке комплектующих 10000руб (1000 000руб!)

Когда речь касается партии, думать нужно хорошо и много. Половина пустой памяти тоже может трактоваться, как лишние расходы. И потом, оптовые цены несколько отличаются от розничных размахом.

И ещё не забываем, что выпуск партии предполагает прибыль, в том числе и с каждого лишнего рубля.

Ссылка на комментарий
Поделиться на другие сайты

...ваших четырёх линий используется преобразователь из последовательного в параллельный - о быстродействии вообще можно было бы промолчать.

И ещё не забываем, что выпуск партии предполагает прибыль, в том числе и с каждого лишнего рубля.

В данном случае, это вариант решения проблемы недостатка линий вывода, а не быстродействия.

Про неоправданный рост стоимости изделия, это Вы заказчику объясните (особенно, если его не интересует, что внутри). :) И попробуйте выиграть тендер, с желанием получения прибыли "с каждого ЛИШНЕГО рубля".

Пора завязывать. Кто на чем пишет, тот так и мыслит. Всем удачи. :bye:

Ссылка на комментарий
Поделиться на другие сайты

В данном случае, это вариант решения проблемы недостатка линий вывода, а не быстродействия.

Как умело Вы случаями манипулируйте.

Про неоправданный рост стоимости изделия, это Вы заказчику объясните (особенно, если его не интересует, что внутри). :)

Хм, я ещё раз повторяю - нужно хорошо и много думать. Если "Си с библиотеками" не укладывается в требования, применится и азм. Но как правило, до этого не доходит. С другой стороны как заказчику объяснить, что я поставил ещё пару корпусов только из за того, что у МК пары ног не хватает? Более жирный МК полюбому дешевле выйдет, чем лишний корпус и "оригинальный" подход.

И попробуйте выиграть тендер, с желанием получения прибыли "с каждого ЛИШНЕГО рубля".

Ну с тендерами, паровозами и прочей фигней я понятия не имею что там. Что то государственное? :bad: Есть же банки, кредиты, коммерческие фирмы.

Пора завязывать. Кто на чем пишет, тот так и мыслит. Всем удачи. :bye:

А я только на Вашем любимом азме пишу (под 8-битные МК), что же с моими мыслями не так?

Изменено пользователем tcoder
Ссылка на комментарий
Поделиться на другие сайты

...Дело не в том, откуда они взяты, а в том, на чём скомпилированы. Работает не "как-то", а вполне нормально. Речь не о поделках, а о промышленных рабочих устройствах...

Откуда знаете, что нормально, если

...А я только на Вашем любимом азме пишу (под 8-битные МК), что же с моими мыслями не так?

:)

...Я её сделал за 4 дня вместе с механикой, начиная с нулевыми знаниями по МК и очень приблизительными в электронике...

Был такой дядька, Станиславский, он однажды сказал : "Не верю!" (По другому поводу). Я повторю (именно по этому поводу).

За 4 дня первый том Хилла-Хоровица только пролистать можно (не читая) :)

...Касательно плавающей точки: Вы пост хорошо прочитали? Лифт должен плавно трогать и останавливать. Т.е. заведомо до остановки начать плавное снижение скорости по кривой и по той же кривой разгоняться...

Везде, где требуется плавное нарастание/спад, применять вычисления с плавающей точкой? А выводить куда(как) результат супервычислений? :) .

...Основные пляски были с плавным переходом между заданными RGB...

Про PWM что-нибудь слышали?

8 бит на цвет, это чуть больше 16 млн. цветов. Ещё плавнее? :D

...Схема должна была плавно "перетекать" цвета, записанные в EEPROM. SPI причём?

SPI притом, что данные приходят, отрабатываются и уходят дальше. (Произвольные данные). А на это ресурсы нужно.

...Вы хорошо живете, чтобы кидаться деньгами? Благо если не своими, а ну как наоборот.

Это как раз благо, если своими. За "не своими" быстро всё ненужное поотрывают :) .

Изменено пользователем forever_student

Нет слова "не могу", есть слово "не хочу"...

Ссылка на комментарий
Поделиться на другие сайты

Ахахахах.

Откуда знаете, что нормально, если...

Потому что если посчитать, сколько в рядовой квартире МК хотя бы в составе бытовой техники.... хехе. А на работу техники жалоб нет. И у меня великие сомнения, что там везде азмовый код. Мне известно, что всё направлено на Си, даже в мелких фирмах.

Был такой дядька, Станиславский, он однажды сказал : "Не верю!" (По другому поводу). Я повторю (именно по этому поводу).

За 4 дня первый том Хилла-Хоровица только пролистать можно (не читая) :)

Если Вы внимательно прочитаете пост, то заметите, что нулевые знания были только по МК (но не по программированию). По электронике знаний было достаточно, чтобы использовать транзисторные ключи, не сжечь светодиоды. Единственным новым для меня был ШИМ для мотора и оптический датчик и ИК светодиод, выдранные из старой мышки.

Везде, где требуется плавное нарастание/спад, применять вычисления с плавающей точкой? А выводить куда(как) результат супервычислений? :) .

У вас маловато опыта, чтобы об этом говорить. Результат супервычислений приводится к целочисленной форме. Если точнее, считается дельта, которая прибавляется к текущему положению шима. Но чтобы её правильно посчитать, нужно число с плавающей точкой, которое масштабируется до нужной величины и переводится в целочисленный вид. Лифт должен разгонятся с постепенным нарастанием скорости и замедлятся с постепенным снижением скорости. Причем чем ближе точка останова - изменение скорости должно снижаться, и наоборот чем дальше от точки старта - изменение скорости должно увеличиваться. Скорее всего это экспонента. Вот и посчитайте это без плавающей точки.

Про PWM что-нибудь слышали?

8 бит на цвет, это чуть больше 16 млн. цветов. Ещё плавнее? :D

Приплыли. То, что Вы назвали тут плавностью - называется цветовым разрешением и отношения к моей задаче не имеет вообще. PWM даёт возможность установить яркость свечения для каждого канала RGB-ленты, т.е. в конечном итоге установить произвольный цвет и только. С этим проблем особо не возникло. Но у меня то задача не один цвет показывать, а сменять ПЛАВНО цвета друг за другом. Т.е. чтобы происходило перетекание из одного цвета в другой со всеми промежуточными оттенками. Т.е. все три канала ШИМ должны за ОДИН ОТРЕЗОК ВРЕМЕНИ неспеша пробежать все цифры до новых индивидуальных значений. В математике это называется линейной интерполяцией и без плавающей точки становится весело. Потому что нужно рассчитать приращение для каждого канала относительно единицы, чтобы приращивая скважность каждого канала в конечном итоге все три величины пришли к конечному оттенку.

SPI притом, что данные приходят, отрабатываются и уходят дальше. (Произвольные данные). А на это ресурсы нужно.

Вот именно, что все вычисления для матрицы у вас производятся вне контроллера и в него поступают только данные о том, на какой канал какую скважность поставить. Моя схема должна работать автономно и вычислять всё самостоятельно.

Изменено пользователем tcoder
Ссылка на комментарий
Поделиться на другие сайты

...Потому что если посчитать, сколько в рядовой квартире МК хотя бы в составе бытовой техники.... хехе. А на работу техники жалоб нет...

Вы счастливый человек.

...Мне известно, что всё направлено на Си, даже в мелких фирмах...

И, наверное, один из самых осведомлённых людей в мире :lol2:.

...

Если Вы внимательно прочитаете пост, то заметите, что нулевые знания были только по МК (но не по программированию). По электронике знаний было достаточно, чтобы использовать транзисторные ключи, не сжечь светодиоды. Единственным новым для меня был ШИМ для мотора и оптический датчик и ИК светодиод, выдранные из старой мышки...

А что я должен был заметить, кроме "нулевыми знаниями по МК и очень приблизительными в электронике"?

Ну хорошо, поставьте вместо Хилла-Хоровица Datasheet на МК (например, для Atmega48/88/168P - 400 с лишним страниц)

...У вас маловато опыта, чтобы об этом говорить...

Нет, наверное, самый осведомлённый... :lol2:.

...Результат супервычислений приводится к целочисленной форме. Если точнее, считается дельта, которая прибавляется к текущему положению шима. Но чтобы её правильно посчитать, нужно число с плавающей точкой, которое масштабируется до нужной величины и переводится в целочисленный вид. Лифт должен разгонятся с постепенным нарастанием скорости и замедлятся с постепенным снижением скорости. Причем чем ближе точка останова - изменение скорости должно снижаться, и наоборот чем дальше от точки старта - изменение скорости должно увеличиваться. Скорее всего это экспонента. Вот и посчитайте это без плавающей точки...

От это опыт, от это да!!!

Считать можно и на PC. Потом просто составить табличку и записать её в память МК. И места меньше займёт и ресурсов вычислительных.

...То, что Вы назвали тут плавностью - называется цветовым разрешением и отношения к моей задаче не имеет вообще. PWM даёт возможность установить яркость свечения для каждого канала RGB-ленты, т.е. в конечном итоге установить произвольный цвет и только. С этим проблем особо не возникло. Но у меня то задача не один цвет показывать, а сменять ПЛАВНО цвета друг за другом. Т.е. чтобы происходило перетекание из одного цвета в другой со всеми промежуточными оттенками...

Ещё раз про табличку чуть выше прочитайте. (табличек может быть и не одна)

...Т.е. все три канала ШИМ должны за ОДИН ОТРЕЗОК ВРЕМЕНИ неспеша пробежать все цифры до новых индивидуальных значений. В математике это называется линейной интерполяцией и без плавающей точки становится весело. Потому что нужно рассчитать приращение для каждого канала относительно единицы, чтобы приращивая скважность каждого канала в конечном итоге все три величины пришли к конечному оттенку...

...Вот именно, что все вычисления для матрицы у вас производятся вне контроллера и в него поступают только данные о том, на какой канал какую скважность поставить. Моя схема должна работать автономно и вычислять всё самостоятельно.

Жуть :lol2: . Между 3 и 192 разница видна?

Нет слова "не могу", есть слово "не хочу"...

Ссылка на комментарий
Поделиться на другие сайты

Вы счастливый человек.

И, наверное, один из самых осведомлённых людей в мире :lol2:.

Нет, наверное, самый осведомлённый... :lol2:.

Не по существу. Нечего ответить чтоле?

Ну хорошо, поставьте вместо Хилла-Хоровица Datasheet на МК (например, для Atmega48/88/168P - 400 с лишним страниц)

Все 400 страниц читать небыло необходимости. Мне нужна была архитектура - а там ничего сложного нет совершенно. Учитывая мой опыт работы на азме с ПС - тем более. Второй этап - список команд, а у PIC-а их весьма мало, а использовал я ещё меньше. Из модулей мне понадобилось только выключить компараторы и освоиться с настройкой аппаратного ШИМ. Остальные модули для этой задачи не требовались. Понадобилось в общей сложности часов 16, чтобы разобраться, как прошить МК, из чего прошить, как он сделан, и какими инструкциями управляется. Не вижу ничего нереального в этом.

Считать можно и на PC. Потом просто составить табличку и записать её в память МК. И места меньше займёт и ресурсов вычислительных.

Во первых мне небыло известно на тот период, как закатать и использовать таблицу в память программ. Во вторых в каком виде хранить эту таблицу? В целочисленном? Т.е. возвращаемся к тем же сложностям, с каких начали - пытаться целочисленное число представлять, как дробную часть. А иначе опять - плавающая точка)

Ещё раз про табличку чуть выше прочитайте. (табличек может быть и не одна)

Ну во первых прочитайте, что я написал выше про таблицы. Во-вторых, касательно RGB-контроллера: табличный подход не годится. Памяти бы тупо не хватило, т.к. метаться нужно было не между двумя цветами, а между 6 на момент заказа и плюс ко всему сами цвета небыли определены (подбирались заказчиком уже после установки на месте), как и было указано, что их число может быть изменено. Поэтому к данному устройству прилагалась программа, позволяющая загружать любые цвета в любой последовательности и с любыми длительностями в EEPROM (разумеется в виде примитивного медиаформата) При таком раскладе возможен только математический подход.

Жуть :lol2: . Между 3 и 192 разница видна?

А это тут причём? Я говорю про плавную смену цвета, а Вы мне про "ты знаешь что такое ШИМ"... и межу 3 и 192 разницы нет, если используется соответствующий алгоритм. Только бы скорости хватило. Но речь изначально о том, что азм неудобен, не отклоняйтесь.

*ps Если техника ломается по программной части (да и вообще) - либо Вам не везёт, либо у Вас руки простите... хехе...

Ссылка на комментарий
Поделиться на другие сайты

Парни, пора успокаиваться. Это вечный спор и выигравших в нем нет.

tcoder, не в обиду. Сейчас я лишний раз убедился в том, что "кто на чем пишет, тот так и мыслит". Вы подтвердили мое высказывание, связав 8-битные МК с плавающей точкой. Можно применить школьную формулу, отталкиваясь от 1сек., потом делить, умножать, возводить в степень и приводить результат к целочисленным значениям... А сразу это сделать (поработать с целочисленными) нельзя?

Конечно можно, например, получить сотни оборотов двигателя в минуту, посчитав импульсы в 1сек., умножить на 60 (30 для двухискрового зажигания) и разделить на 100. Но ведь можно и посчитать эти импульсы за 0,6сек (0,3сек) и результат в регистре. Спорить не буду. У кого на чем лучше получается, пусть тот на том и пишет.

Ссылка на комментарий
Поделиться на другие сайты

Я тоже с интересом наблюдаю... аж зуд начался, так интересно узнать зачем же так нужна плавающая точка для управления 8битным ШИМом, если все можно делать и без нее :)

Feel the difference! ©

Ссылка на комментарий
Поделиться на другие сайты

А сразу это сделать (поработать с целочисленными) нельзя?

Так в том то и дело, что без использования плавающей точки это единственный вариант. И на него нужно затратить время. А в Си не нужно. Вот и всё, на что были нацелены примеры. Места в контроллере бы хватило.

если все можно делать и без нее :)

А я и сделал без нее. Только если присмотрется, видно, что замедление и ускорение далеко не идеальны. И времени только на это угрохалось довольно много по отношению к общему времени.

Изменено пользователем tcoder
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • @korsaj Так сейчас вчитывался ещё раз и ничего как то на ум так и не идёт. Сложновато получается. Данную функцию да тем более с массивами на сравнение я точно не осилю.
    • Собрал тиристорное зарядное. И не совсем понятно как измерять его ток заряда. Вот так показывают два неплохих мультиметра на измерении постоянного тока  (уверен что стрелочный покажет то же самое )   но , Мы же понимаем , что после тиристора идёт не постоянный ток , а импульсный  и вот такое теперь показывают мультиметры в режиме измерения переменного тока  один РМС, другой не рмс.   Что считать правдой ?
    • А чего бы не поставить рядом с DS18B20 некрупный конденсатор между VDD и GND? 
    • Я вскрываю металлической линейкой. Очень часто у таких блоков есть паз вдоль шва, туда вставляю линейку по всей длине шва и как рычагом вскрываю корпус. Если вначале немного промять корпус вдоль шва (бывает достаточно пальцами), то шансы легко вскрыть значительно увеличиваются.
    • При включении в ранее опубликованном виде устройство стало генератором. Частота до 140кГц, на индуктивности размах (от мин. до макс.) до 20В при напряжении на испытуемом БП ~3В. Добавил несколько конденсаторов, в том числе как рекомендовали Z_VIP и Starichok. Немного изменил номиналы резистора в компараторе. Удалил шунтирующее сопротивление на резисторе регулятора тока. Компаратор буду еще отлаживать - в приведённой ниже схеме срабатывает при 4В, но не не отпускает при отсутствии напряжения.  Ограничение тока выставил на 4А. Регулировка тока плавная от 0 до  4А. Выставленный ток стабильный при изменении напряжения от 1В до 10В. Напряжение выше 10В пока не поднимал. Ниже 0,95В ток снижается пропорционально напряжению. Схема в приложении. Все изменения-дополнения делал на существующей плате навесным монтажом. Позже выложу актуальную разводку. Отлаживал с транзисторами AP60T30 (ранее выкладывал фото транзисторов на радиаторе) - без обдува при комнатной температуре длительно держат 20Вт (10В, 2А) при температуре радиатора ~40гр.C. Приобрёл транзисторы IRFP460. С радиатором пока не определился. Схема и фото отладки на текущий момент времени. На фото стрелочный прибор - амперметр с током полного отклонения 6А. и в DipTrace:  
    • Ведь этож надо... такое совпадение. И я тоже делаю без сверлений. Более того, прилагаю фото имеющихся у меня  "хоть чуток острых предметов", несмотря на наличие которых, столь несложный и общедоступный  способ зачистки, к.м.к.  имеет право на демонстрацию в данной теме. Вдруг кому-то пригодится... Тем более, что тема простаивает аж с марта, будто на белом свете нет ничего, что можно было бы сюда  разместить,  хотя бы для сведения. 
×
×
  • Создать...