Генератор меандра на 2 канала.

uni
uni аватар
Offline
Зарегистрирован: 24.09.2015

сдохля пишет:

Здравствуйте dimax.

Попросил бы естественно помощи в написании такой программы.Частоту можно опустить до 1 МГЦа. Я занимаюсь саморазвитием. Приобрел литературу по программированию ардуино. Мой проект не коммерчесский, для личного пользования.

Процитировал ещё раз для невнимательных.

Евгений, я вроде намекал что у меня 1 МГц, а вы всё какой-то свой ШИМ видимо в голове держите. Я для кого привёл текст программы и график? Может там плохо видно, но ведь я прямо указал, что период равен 1 мкс (по графику можете период посчитать?). Следовательно частота равна 1/1мкс = 1 МГц. Не 1.25 МГц (с какого потолка взяли), а именно 1 МГц.

У меня нет 14 градаций ШИМ, забудьте свой ШИМ вообще. Где было сказано про ШИМ? Если вы про него забудете, то "удлинение низких сигналов" само собой пропадёт.

Понимаете в чём дело, у меня 14 команд (out) длительностью 1 цикл и 1 команда длительностью 2 цикла (rjmp), если мы их сложим, то получим 16 циклов всегда. Ваша придирка по поводу прерываний тут малоуместна, т.к. мой код демонстрировал принципиальную возможность управления длительностью импульса. Если кто-то извне приостанавливает процесс, то вы сначала поясните где требования к стабильности? У вас в голове? Вот пускай там и остаются, а как появятся в ТЗ, я покажу как работать с прерываниями, т.к. нужно ещё вечный цикл останавливать.

Так вот 16 циклов - это указанный мной период в 1 мкс (1 МГц), здесь "накладные расходы" уже учтены. Это безусловный переход. Поэтому я указал, что длительность импульса меняется до 13 * 62.5 нс. 13, а не 14, т.к. 14 - это будет не прямоугольный сигнал, а постоянное напряжение на выходе.

Если бы вы посмотрели на код хотя бы в Proteus и понимали что такое скважность импульсов по определению, то у вас не появилось бы: 1.25 МГц, 14 уровней и "удлинённости".

Думайте, прежде чем ещё что-то писать. Это уже не смешно.

Logik
Онлайн
Зарегистрирован: 05.08.2014

ЕвгенийП пишет:

сдохля пишет:

нужно создать генератор прямоугольных импульсов на 2 канала, с частотой до 2-4 МГЦ по каждому. 

Нехорошо!

Нехороше тему не читать! 

//Частоту можно опустить до 1 МГЦа.  см.#5

ssss
Offline
Зарегистрирован: 01.07.2016

uni пишет:

Это уже не смешно.

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

Logik
Онлайн
Зарегистрирован: 05.08.2014

uni пишет:

Думайте, прежде чем ещё что-то писать. Это уже не смешно.

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

uni
uni аватар
Offline
Зарегистрирован: 24.09.2015

ssss пишет:

uni пишет:

Это уже не смешно.

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

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

Logik
Онлайн
Зарегистрирован: 05.08.2014

ssss пишет:

Спросите у ТСа, нужно ли ему такое счастье геморройное? )))))))))

Так перелогинься под сдохля. Заодно и на мой вопрос ответь ;) 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

uni, вы прямо никак не угомонитесь.  Конечно ТС не писал сколько шагов скважности нужно, он вообще много чего не писал, может ему нужно частоту от 0 до 1МГц с шагом в 1 герц регулировать, а скважность  8-битную? И фазы каналов раздвигать с разрешением в микросекунду?  Мы не знаем что он хотел,  поэтому исходим из потребностей среднестатического пользователя.  А это значит делать всё серьёзно - и тут  либо аналоговые решения, как писал wdrakula,  либо скоростные контроллеры . С современными гигагерцовыми "малинками" такая задача думаю вполне решается  программно. Но обсуждать всерьёз решения на 16 Мгц МК , да ещё и с фиксированной частотой -ну это перебор.

uni
uni аватар
Offline
Зарегистрирован: 24.09.2015

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

Если у вас много денег, то да - купите не ардуину, а что-нить помощнее и по-дороже. А когда разница в цене исчисляется сотнями тысяч и миллионами, что вы тогда делать будете? Уволитесь? Предложите купить за миллионы? Не сможете решить имеющимися средствами - уволят вас :)

Logik
Онлайн
Зарегистрирован: 05.08.2014

dimax пишет:

 Конечно ТС не писал сколько шагов скважности нужно, он вообще много чего не писал

Угу. Пошти ничего не писал, кроме пожалуй. этого

 

"Здравствуйте господа.

Ищу человека который поможет создать скетч для платформы УНО в дальнейшем и мини. Готов обдумать цену вопроса моего проекта.

Задача: Нужно - создать скетч двухканального генератора меандра, который будет управлять затворами мосфет. Требования - Регулировка частоты по всему диапазону от 50ГЦ до максимально возможного, для обоих сигналов, желательно индивидуально для каждого. Требуется - регулировка скважности для обоих сигналов, желательно индивидуально для каждого. Переменные резисторы не используем, только программный код. Требуется - организовать смещение во времени включения одного сигнала относительно второго, естественно максимально регулируемое.Описание в скетчу - какие параметры за что отвечают, в плане регулировок частоты, скважности, смещения. Чтобы в дальнейшем не возникло путаницы при изменении параметров.

Спасибо."

http://arduino.ru/forum/ishchu-ispolnitelya/generator-meandra-na-2-kanala-s-regulirovkoi-skvazhnosti-chastoty-sdviga

Вот так от 50Гц до сколько бог подаст. Выводы думаю понятны.

ssss
Offline
Зарегистрирован: 01.07.2016

uni пишет:

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

С исповедями к попу, а не на форум! И "хороший парень - не профессия!"(с). )))))))))))

Цитата:

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

Ну и где вы узрели в своём решении оптимизацию? По удалению собственных гланд через прямую кишку?

Цитата:

Если у вас много денег, то да - купите не ардуину, а что-нить помощнее и по-дороже.

Для единичного случая и для себя цена не имеет особого значения. Тем более, если там разница совсем невелика. А вот зря потраченное время имеет цену.

ssss
Offline
Зарегистрирован: 01.07.2016

uni пишет:

Можете улучшить или предложить свой код - приведите его.

Не смешите мои тапки! Там кода... видеть нечего. )))))))))

Соединить аппаратно три таймера, там только инит, по сути. Дальше только грузим регистры таймеров нужными значениями и все дела.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ssss пишет:

ua6em пишет:

ssss пишет:

"Миссия невыполнима!"(с).

ну почему? у ардуино DUO тактовая позволяет

А вот сами попробуйте и потом расскажите.

сделаю, на жёсткой логике

uni
uni аватар
Offline
Зарегистрирован: 24.09.2015

ssss пишет:

uni пишет:

Можете улучшить или предложить свой код - приведите его.

Не смешите мои тапки! Там кода... видеть нечего. )))))))))

Соединить аппаратно три таймера, там только инит, по сути. Дальше только грузим регистры таймеров нужными значениями и все дела.

Я так и знал, что не можете. Можете не оправдываться.

ssss
Offline
Зарегистрирован: 01.07.2016

Было бы перед кем! ))))))))))))

Песшы ысчо! Ты такой смешной! )))))))))))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Logik пишет:

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

Как выражается uni, "Я по коду сужу, а не по пустой болтовне". В коде был запрет прерываний? Ну. а если не было, то и болтать нечего.

сдохля
Offline
Зарегистрирован: 06.11.2016

Доброе утро. Спасибо Гостю за программу. Загрузил в микроконтроллер, действительно, все работает, частотный диаппазон бы повыше... Приятным бонусом оказался третий канал. Отвечая на вопросы про частоту хочу заметить, что 1МГЦ это была максимально высокая точка которая врятли бы использовалась, но иметь такой частотный "запас" было приятно. Про эту точку мне написали сами люди находящиеся на этом форуме, как про возможную для платформы ардуино. Я не знаю, что еще написать! Гость прав, пришел за помощью, получил нравоучения! Хочу сказать спасибо некоторым людям, которые были готовы помочь мне, пусть даже и не за идею...

Logik
Онлайн
Зарегистрирован: 05.08.2014

сдохля пишет:

 Отвечая на вопросы про частоту хочу заметить, что 1МГЦ это была максимально высокая точка которая врятли бы использовалась, но иметь такой частотный "запас" было приятно.

Вы в курсе, что у мосфетов есть свойство: потери растут с частотой переключения. Потому поднимать частоту просто так не рекомендуется. А на относительно невысокой частоте, ну допустим 100КГц или 10КГц (что же Вы хотите сделать то?), все в контроллере реализуется намного проще. Это называется грамотно поставленное ТЗ ;)

сдохля
Offline
Зарегистрирован: 06.11.2016

Здравствуйте Логик.Вы желаете грамотно поставленное техничесское задание? Отлично! На первой странице программа от Гостя. Переделайте ее, сохранив 3 канала и все имеющиеся регулировки, увеличьте частоту корректной работы этой программы до 400-500 КГЦ, да хотя бы до 200 КГЦ.. Выложите программу сюда, людям! Или все опять закончится словами от одного человека - "ты знаешь сколько стоит день работы программиста"??

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

сдохля, нет там никакой программы. Это говнокод на уровне школьника-любителя.  Вам же в соответсвующем разделе предложили платные услуги по написанию, за чем дело-то встало? Оплатите труд, и получите программу. А то начинаются тонкие разводы "на слабо".

сдохля
Offline
Зарегистрирован: 06.11.2016

Димах. Оброщение было не к вашей персоне, а совершенно к другому человеку. Этот "говнокод" как вы его называете, меня выручил. А от вас, акромя упомянутых выше слов "от одного человека" ни чего путного не услышал. Ладно, всех благ, ни чего мне от Вас не нужно!

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

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

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

сдохля пишет:

Вы желаете грамотно поставленное техничесское задание? 

Ни Логик, ни кто другой не желает ничего. Это Вам было что-то надо. Получили код от Гостя?

Вот это предел того, что Вы получите бесплатно.

сдохля пишет:

Выложите программу сюда, людям!

Альтруизм это психичекое расстройство, ну просто чтобы Вы знали.

Очень много сложного и полезного кода люди выкладывают бесплатно в разделе "Проекты". Это код, на который потрачен не один месяц, но это ИНТЕРЕСНЫЕ проекты. И автору и читателям.

Вы понимате разницу : "бесплатно написать дураку программу" и "выложить для общества интересный проект"?

---

Нужно умерить свои понты и понимать, КАК и КАКИМ тоном стоит говорить с людьми во много раз умнее и грамотнее.

"Ласковый теленок - двух мамок сосет".

Как НАДО было делать:

1. в ответ на невозможность решения задачи из первого поста, не писать гордо "тогда вопрс закрыт", а уточнить, какой параметр не выполним. Понять как нужно гораничить верхнюю частоту. Не 1 МГц, а СПРОСИТЬ до скорльки можно сделать.

В крайнем сообщении Вы дали понять, что ДО СИХ ПОР не понимаете , до скольких МГц можно сделать на ардуино. "Хотя бы до 200 КГц" - на ардуино нельзя. Но Вы можете спросить.

2. Следовало бы уточнить про точность регулировок, прочитав комментарии специалистов. Например при точности установки скважности в 1% даже 100КГц - не выйдет, а 10% - можно почти 1 Мгц сделать. Точность смещения старта - тоже самое.

3. Прочитав коммнте можно было бы спросить - "а на чем можно такое сделать?". Вам бы тут же предложили СТМ платку стоимостью в те же 100-200 р. + программатор. Там есть три таймера достаточного разрешения.

4. Получив код от Гостя, можно было бы спросить, что именно не так с ним. Вежливо попросить специалистов пояснить. Ведь дураку, ну так скажем - даже Вам, должно быть ясно, что за столь простой код НИКТО не стал бы просить денег. Почему никто Вам не предложил столь простое и ясное решение, только добрый Гость?

Просто вежливо спросить" Я не понимаю, вроде все работает, почему это "говнокод"? Хочу научиться - поясните пожалуйста".

Если человек пишет, что ХОЧЕТ научиться, то тут и Дима и Я и Евгений и Логик и другие, все наперебой бросятся объяснять... скорее всего. Я бы - точно не устоял.

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

Если Вы беспокоитесь об авторских правах на свою идею, то сперва стоит проконсультироваться у психиатора. Я понимаю, что это звучит оскорбительно, но вероятность того, что Ваша идея имеет коммерческую ценность и кто-то этим воспользуется - ниже статистической погрешности. Это пишет взрослый человек (мне 47 лет) с IQ выше 160. Поверьте - вероятность идеи, уровня той, что создала Гейтса, Джобса или Цукерберга - не отличима от нуля. Чесное слово! ;)

Logik
Онлайн
Зарегистрирован: 05.08.2014

сдохля пишет:

Вы желаете грамотно поставленное техничесское задание? 

Не то чтоб в конкретно Вашем случае возжелал бы, но это всегда один из первых вопросов. На самом деле ТЗ куда более важно Вам, чем мне - ваш проект, вам и наслааждатся результатом. Захотев на всякий случай мегагерцы Вы получите: более дорогой контролер, дороже разработку софта с большими рисками, перегрев мосфетов. Мал того, а если вы вдруг за деньги закажите, как будет определятся годно или нет (т.е платить бабки или нет), если у Вас требуется "Регулировка частоты по всему диапазону от 50ГЦ до максимально возможного" но можна "хотя бы до 200 КГЦ" однако "корректной работы этой программы до 400-500 КГЦ" хотя лучше 1МГц а вобще хочется "с частотой до 2-4 МГЦ"??

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

сдохля пишет:

На первой странице программа от Гостя. Переделайте ее, сохранив 3 канала и все имеющиеся регулировки, увеличьте частоту корректной работы этой программы до 400-500 КГЦ, да хотя бы до 200 КГЦ.. 

Ну Вы вот когда писали, не задумались "А оно ему воще нафиг надо?". Мы ж не в "Ищу исполнителя" пишем. Потому о коде Гостя, просмотрел бегло - только посоветую: замените digitalWrite на прямую работу с портами т.е. bitSet(.. и bitClear(.. , замените long на char, перейти на целочисленную арифметик, где возможно константными выражениями. Про Serial ардуиновский - забыть, прерывания запретить, настройки принимать напрямую из UART через его регистры, лучше в тех проходах цикла, где не происходило активных действий. В результате про 200КГц -не уверен, но возможно, а на 100КГц должно.     

сдохля пишет:

Выложите программу сюда, людям! 

Ага. Как сделаете - не забудьте.

 

сдохля пишет:

Или все опять закончится словами от одного человека - "ты знаешь сколько стоит день работы программиста"??

За все нужно платить. Что тут удивительного? 

 

 

nazar
Offline
Зарегистрирован: 08.02.2016

Привет всем. Господа профессора, я так же очень хотел бы  иметь скетч генератра со сдвигом фаз. Например на нано платке  на 10 ноге 100 гц, а на 12 50 кгц. Те 50 кгц запускались при наале импульса 100 гц и можно было бы сдвигат время запуска второго. Дисплеи не нужны. Просто управление сдвигом и все. Визуализация ослом.
С ардуино знаком, с программированием поверхностно. Но логически уже делал некоторые вещи, вынимая и вставляя скрипты.
Если такое возможно .

Как база думаю вот это https://www.drive2.ru/b/500226664421131042/

https://rcl-radio.ru/?p=43037