Тоже хотел предложить, потому и про потребление спрашивал. Платка с микрухой и всеми нужными детальками стоит копейки, и места занимает 1,5 кв. см. Но, с другой стороны, два диода и два конденсатора на ногу ардуины занимают ещё меньше места, и найти проще.
Для обоих вариантов максимальный ток менее 10 мА, должно хватить.
хотя max сам по себе кушает неплохо, и греется. Хотя , в контроллере нужно место для кода шим- для этого преобразователя, и порт выделить....
Возможно, max232 много кушает при передаче интерфейса, но как преобразователь он берёт пару миллиампер (плюс то, что отдаёт в нагрузку), соответственно не греется никак. Недавно проводил измерения.
Для контроллера достаточно строчки в скетче, при этом один из пинов начинает работать повторителем тактового генератора. Недавно где-то встречал, знатоки подскажут.
Интересно откуда с выхода МК возмется отрицательное напряжение, которое Вы выпрямлять собрались?
Возьми с предыдущей страницы схему (где два диода и два конденсатора), и мысленно подключай точку out поочередно на питание и на землю. Делай так пока не возникнет просветление))).
max232 весьма устаревшая микруха. ведь полно же преобрахователей даже в корпусе SMD транзистора и стоит копейки. но не вижу смысла МК спокойно справится, если ток большой не нужен.
На SSD1306 версии бы так ускорить вывод :) экран побольше расрешением всё-таки.
Может кому пригодиться, нашел простой мобильный способ работы с uart (без компа) - прога Slick USB 2 Serial Term Pro (4pda) + Android с OTG + USB-RS232 адаптеры Profilic или FTDI (в моем случае кабель от Siemens MA-8730P)
Сделал двухполярку на MAX232, их и гамнистая же она на устойчивый запуск... В итоге от 17В на хх до 15В под нагрузкой, ни окаких 10 ма даже речь не идет, не тянет столько. Но 358 хватило, питание не просаживается вообще.
Вариант с ногой микконтролера пробовал, при номиналах способных отдать нормальный ток заваливается передний фронт импульса с ноги микроконтролера, явно перегруз вывода.
Покритикуйте такой вариант инвертора - конденсатор между ногой микроконтролера и затвором это защита от единицы при зависании микроконтролера или ошибке програмиста.
LM358 к сожалению СЛИШКОМ медленный, сервак режет разрешение - частоты 100, 500, 1 000, 2 000, 5 000, 10 000, 20 000 и 50 000 гц. Вход примерно 1 вольт переменки, выход 0,1 - 0,9 постоянки. Кому интересно полный скрин пишите на as31979@gmail.com
Кто может посоветовать операционик поприличнее, но чтобы не на вес золота и распространненый?
я применяю NE5532, довольно шустрый и недорогой оу, полоса пропускания 10 МГц, скорость нарастания - вроде как 9 в/мксек. для генераторов и осциллов на Ардуинках - АЧХ такого Оу самое оно
Вариант с ногой микконтролера пробовал, при номиналах способных отдать нормальный ток заваливается передний фронт импульса с ноги микроконтролера, явно перегруз вывода.
Какая частота, какие ёмкости? Какой ток нагрузки пробовали?
Я нередко использую AD823. Частота единичного усиления 17 МГц. Рейл-ту-рейл с полевиками на входе.
AD8042 совсем недорогая, очень быстрая (около 200 вольт в микросекунду), но могут быть проблемы с паразитным напряжением на входе и нет полевиков. Если входной делитель будет переключаемый, то придется мудрить компенсацию.
В своих осликах (Импульс-5110 и Импульс-7735) использую инвертор на МС34063.
Если найдете то неплохо TPS60400 - 60403. Нечто вроде ICL 7660, но на ток до 60 мА.
Вот отыскал библу под ST7565 http://arduino.ru/forum/proekty/pultoskop-na-arduino-27mgts?page=37#comment-211685(такой дисплей стоит в транзистор-тестере LCR-T4(T3)NoStripGrid). Распиновок в интернете хватает. Но наверное перерисовывать скетч осцила будет сложно чтобы подогнать под этот экран. А так в готовый ТТ влить скетч от diksen было бы круто. Тестер и осчил на большом экране))). Как это ещё китайцы пока не догадались? :)
Вынужден признатся что в сообщении Чт, 06/12/2018 - 22:09 #4011дал неверную информацию, но тогда этого еще не знал и начал поиск замены LM358.
AD823, AD8042, AD8032 - по моему слишком жирно будет для Пультоскопа, самая дешовая от 2$...
Купил пару NE5532 которые посоветовал condensator80 выводы полностью совпадают с LM358.
При попытке заменить в панельке LM358 на NE5532 меня ждал сюрприз - на макетной плате оказалась пара соплей, после их убивания картина резко поменялась.
LM358 - нагрузка напрямую на аналоговый вход, питание -8_0_+8 вольт.
NE5532 - нагрузка напрямую на аналоговый вход, питание -7_0_+7 вольт(жрет больше просело)
.
Переходные процесы NE5532 на нормальном осциографе начинают резать глаза примерно с 5 кГц, но совершенно не видны на маленьком экране 5110 Пультоскопа.
А вот завал заднего фронта LM358 уже различим даже на экране Пультоскопа.
Оба операционика без проблем отрабатывают синусоиду и треугольник, до 25 кГц Ардуино на 16 Мгц дает четкую картинку, 50 кГц видно, но уже дрожит, понять прямоугольник или синусоида/треугольник без проблем, но подробностей никаких.
AD823, AD8042, AD8032 - по моему слишком жирно будет для Пультоскопа, самая дешовая от 2$...
Оба операционика без проблем отрабатывают синусоиду и треугольник, до 25 кГц Ардуино на 16 Мгц дает четкую картинку, 50 кГц видно, но уже дрожит, понять прямоугольник или синусоида/треугольник без проблем, но подробностей никаких.
AD8042 совсем не 2 доллара. Но это так, к слову.
Один из самых сложных сигнал для тестов осликов - меандр. На него и стоит ориентироваться. Чем больше максимальная скорость нарастания выходного сигнала ОУ, тем больше меандр будет похож на меандр, а не на трапецию.
Разводка корпусов стандартная практически у всех сдвоенных восьминогих операционников.
О ЛМ358, да собственно о любом ОУ. Чем больше коэффициент усиления мы выставим, тем сильнее ограничим полосу пропускания.
Загнали КУ = 10, например, частота упала в 10 раз. Ноги трапеции сильнее расползлись.
Если КУ не равен 1, то ЛМ358 плохо подходит даже для Пультоскопа.
Дак что тут ждать то... После того как память у микроконтроллера конилась - опечалился я чтот с этим пультоскопом. Хотел сделать "свой" адафрут под этот дисплей - не пошло. Достроил свой станок ЧПУ из струйных принтеров с лазером 2,5 ватт на борту - интерес к нему пока ослаб, но есть пару мыслей - надо проверить. Работы навалилось еще тут.... К новому году не смогу скорее всего Вас порадовать. Еще токарный свой разобрал тут... надо обратно собирать..... В новогодние праздники может появиться время - позанимаюсь этим проектом.. Хотя че тут заниматься - собрать все в один код, но пишу я код очень долго, постоянно трясусь над каждым байтом - так меня ZX Spectrum приучил, вы уж простите, я просто мысленно представляю, как там та или иная строка будет транслироваться компилятором в машинный код, постоянно измеряю время выполнения того или иного куска программы... В планах сделать автоматику под этот дисплей, хотя она уже была сделана форумчанами, но я хочу сам - досконально чтобы все работало как надо, а не так - что, работает и ладно. Хочу понимать каждый символ исходника. Так что как то так:)
P.S. Мониторю эту ветку форума постоянно, но она как то не в ту степь ушла...
И всем спасибо, кто надеятся и верят в меня:) Очень сильно мотивирует:)
Какой глобальный подход! Мы в Вас верим и ждём. Только не отказывайтесь от анализатора. Помимо него всё остальное устраивает уже на сегодняшний день. И размер осциллограммы не уменьшайте, в последнем выложенном варианте отлично.
Уж думал, как заинтересовать материально в меру своих возможностей, но география не способствует. Хотя по своему опыту понимаю, что такая работа делается только на "спортивном интересе", если пересчитать в деньги, то у меня столько и нет.)
о да программирование на спектруме дело тонкое. каждая миллисекунда на счету. и вывод картинок через стек изврат еще тот но скорость вывода впечатляет.
чем то похоже программирование атмеги 328 под такие задачи. каждый байт на счету.
о да программирование на спектруме дело тонкое. каждая миллисекунда на счету. и вывод картинок через стек изврат еще тот но скорость вывода впечатляет.
чем то похоже программирование атмеги 328 под такие задачи. каждый байт на счету.
Заметил одну особенность в коде пультоскопа (совершенно случайно) - все выводимые линии прямые! Т.е. рисуем линию либо по вертикали, либо по горизонтали.
Это даст очень много оптимизации к коду! Тот кто в теме, я думаю, понимает.... Аж руки зачесались, но надо спать идти.... Кароче можно жестко оптимизнуть этот адафрут, не теряя ничего... Попробую.... там еще textSize, и с Color`ом можно помутить....
UPD: В этом адафруте такая кривота! Или у меня может другое отношение к написаню кода.... Я пребываю в легком шоке. Килобайт свободной памяти я уже добыл, и оперативы свободной на несколько байт прибавилось:))
И как ваще можно назвать функцию drawFastVLine, если она тупо использует обычный drawLine, которая использует много вычислений, чтоб нарисовать линию с неким углом?
Пока вспомнил: Electronik83, скетч выкладывайте и на форуме, пожалуйста, а то с ЯД геморно скачивать (уж несколько раз сталкивался, чуть не час времени уходит у меня, архивы вообще битые, хорошо хоть пофайлово есть возможность). Хотя на этот раз, наверно, ещё и Адафрут будет?
Пока вспомнил: Electronik83, скетч выкладывайте и на форуме, пожалуйста, а то с ЯД геморно скачивать (уж несколько раз сталкивался, чуть не час времени уходит у меня, архивы вообще битые, хорошо хоть пофайлово есть возможность). Хотя на этот раз, наверно, ещё и Адафрут будет?
Ок. Будет Elofruit:) Тока тут пока не вяжется - разберусь:)
Я то думаю, зачем просят скетч по почте прислать... Теперь все понятно.
Это даст очень много оптимизации к коду! Тот кто в теме, я думаю, понимает.... Аж руки зачесались, но надо спать идти.... Кароче можно жестко оптимизнуть этот адафрут, не теряя ничего... Попробую.... там еще textSize, и с Color`ом можно помутить....
Сщединил я две библы для 5110 (PCD8544 и другую нашел в инете без GFX) все работает отлично есть кирилица, все функции для пультоскопа. Нет setCursor и setSize.Быстрая и занимает немного.
Проверял на exsamples. Собрал на на макетке схему пультоскопа, а проверить не могу. Единственный дисплей приказал долго жить.
я вот в поисках "лишних" пинов тоже ресет на ресет кидал. Но не всегда запускается(в ~10% не заводится ). Это походу будет зависеть от того как они разведены;(дисплей у меня красный, ардуино про мини тоже китайский) Надо задержку какую-то мутить на пол секунды от ресета дуни на ресет экрана (мот на не555)
библы от адафрута и дочерку PCD8544 я тоже обьеденял. и ногодрыг там был через DigitalWrite, я делал напрямую типа
// DIN на 4 пине порта D
#define DIN_HI (PORTD |= 1<<4)
#define DIN_LO (PORTD &= ~(1<<4))
#define DIN_OUT (DDRD |= 1<<4) //DIN PD4 (пин4) как выход
и большинство переменных там int16_t (и экрана размеры и цвет...) на PCD8544 достаточто int8_8
троху меньше глобальной памяти стало ести на 1000 замеров ацп хватает в режиме паузы (а в рабочем режиме только на 255 забиваю - можно вообще на 80-ширину экрана) дык осцил перестал тормозить(наоборот колбасил экран как дурень - надо трохи пауз забить)
Когда заинтересовался пультоскопом для меня самым важным была возможность самостоятельного ремонта/модернизации.
Вчера наконец слепил прототип имеющий право претендовать на название осцилограф, требования были такими:
Простота, крайне желательно чтобы он состоял из стандартных модулей с Алиэкспресс - банально лень заниматся ЛУТ, пайкой и т.д., да и дешевле получается чем самому паять(именно поэтому не подошол DSO168)
Цена - мне он нужен для практического применения, а большинство приборов при работе гибнет из за банального щелкания клювом...
Достаточно высокое входное сопротивление - рекомендуемое максимальное сопротивление на входе АЦП Arduino 10 кОм и это на штатной частоте 9,6 кГц, но даже 10 кОм вполне способно внести искажения в работу многих схем.
Обезательна возможность отображения двухполярных сигналов, причем достаточно малых величин - заранее никогда не знаешь на что нарвешься, делитель сделать не долго, а вот на оборот иже фиг.
Для проверки/наладки большинства тиристорных преобразователей и многих промышленных интерфейсов вполне хватет тех 25 кГц что достигаются даже на штатных 16 Мгц.
Вот что получилось:
Входное сопротивление 100 кОм, видел на форуме почти такой же входной тракт с входным сопротивлением в 1 МОм, входное напряжение +/- 0,6...0,7В(зависит от диодов VD4,VD5). Ввходное напряжение на АЦП при 0 на входе 0,5В(0 при входе -0,6В, 1В при входе +0,6В). Такое низкое напряжение выбранно потомы что быстродействие операционного усилителя зависит на только от типа операционика, но и от разницы напряжений напряжения питания и выходного напряжения - чем больше разница тем больше быстродействие.
Общение с дисплеем 5110 переведенно на пины А0-А4, входной сигнал на А7.
Выводы кнопок защищенны от ошибок при инициации выводов.
Данный операционик имеет приемлимые характеристики примерно до 50 кГц(прямоугольный сигнал).
Схемма питания это конечно изврат, но зато на стандартном модуле.
Как выяснилось MT3608 допускает огромный диапазон индуктивности - я использовал феритовое кольцо от электронного баласта лампы.
Первичная обмотка 7-8 витков, вторичные примерно 20.
ВНИМАНИЕ имеет значение начало-конец обмоток, если неправильно присоеденить выпрямительные диоды выходное напряжение будет сильно заниженно!!!
А еще были найденны интересные и недорогие модули, да и сам магазин интересен - за доставки 1 преобразователя надо заплатить 0,69$, а за доставку 8 разных позиций одним заказом всего 0,9$:
Вот именно . Я тоже собирал его для ремонта тиристорных преобразователей. Опирационник был подключен по другой схеме. всё работало отлично. Но нужен ущё один вход. Это вход внешней синхронизации. Я сам не смогу его сделать. А он очень нужен, особенно когда работаешь с трёхфазной сетью. Просто развитие осциллогрофа движется в другую сторону. И всем не до этого. Прибор лежит и ждёт.
В заводских осциллогрофах есть (Синхронизация от сети). Тут можно использовать аналоговый вход, подавать на него синусоиду от маленького трансформатора и от неё синхронизировать основной луч. Или цифровой вход как вы предложили "Запуск АЦП при изменении с нуля на единицу на входе синхронизации" Само железо я не боюсь. Но программер я вообще ни кто. А приборчик-то нужный. Ешё проблема в том что тиристорные преобразователи изживают себя, на смену им приходит частотное регулирование. Я могу и не успеть этим прибором их по-тыкать. А частотники они скучные, они слишком умные, в них нечего ремонтировать.
volodya198024, и всем, кто желает внешнюю синхронизацию - если использовать второй аналоговый вход для синхронизации - тогда максимальная частота (сэмплинг, или как там называется) упадет больше, чем в двое, т.к. придется обслуживать сразу два канала. А так - с синхрой можно подумать так то... Но я те старые просьбы не доделал и этот Медленный осц не сделал, как хотел... хм...
А шестифайловый скетч как сюда добавлять? У меня для ssd1306 вроде как было 4 файла.... И блин... оно скомпилировалось, и работает! :))) Я кста не профессиональный программист.... любитель...
Появилось время и желание, добрался до програмирования, вспомнил и автора и его родню - кнопки к пинам привязанны капитально, отгрызать прийдется по одной, да ще и в нескольких разных местах.
Как не смешно прицепить внешнюю синхронизацию оказалось в разы проще чем анналоговые кнопки - volodya198024 смотрите видео, если ничего не напутал это то что вам нужно:
Управляет режимом D13, синхросигнал дискретный с D7 - можна взять любые цифровые пины, думаю можно обойтись вообще одним пином, но там уже нужен нормальный формирователь, а не та порнография что я слепил для теста.
Изменений в коде аж шесть строк:
void Zamer(){
if (razv>=6){ADCSRA = 0b11100010;}//delitel 4
if (razv==5){ADCSRA = 0b11100011;}//delitel 8
if (razv==4){ADCSRA = 0b11100100;}//delitel 16
if (razv==3){ADCSRA = 0b11100101;}//delitel 32
if (razv==2){ADCSRA = 0b11100110;}//delitel 64
if (razv<2){ADCSRA = 0b11100111;}//delitel 128
while(digitalRead(13)==HIGH) {if (digitalRead(7)==LOW)
{goto waiting_zero;} }
waiting_zero:
while(digitalRead(13)==HIGH) {if (digitalRead(7)==HIGH)
{goto waiting_one;} }
waiting_one:
if (razv==0){
for(int i=0;i<700;i++){
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
delayMicroseconds(500);
mass[i]=ADCH;
}
}
if (razv>0){
for(int i=0;i<700;i++){
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
mass[i]=ADCH;
}
}
}
Сразу поясняю как работает:
С D13 думаю все понятно - просто, пока на D13 логический ноль никакого влияния на работу мое дополнение не оказывает.
Если на D13 логическая еденица включается режим внешней синхронизации, но тут возникает вопрос - а не получится ли так что пока пултоскоп думал логическая еденица на D7уже наступила. Толку стартовать с непонятно какого места?
Вывод? - нужно дождатся окончания синхроимпульса, этим занимаются первые три строки моего дополнения.
Потом нужно дождатся прихода на вход внешней синхронизации логической еденицы, за это отвечают остальные три строки.
Дальше все как в авторской программе.
Можно было сделать еще проще, но данный код гарантирует возможность в любой момент выйти из режима внешней синхронизации.
Побочный эфект - если выдернуть сигнальный провод в режиме внешней синхронизации осцилограф запоминает последнюю картинку, хоть часами рассматривай.
Здесь не приведенно, но в отличии от автора я в заголовке принудительно прописал все используемые пины как входа/выхода, кому как везет - у меня если что то оставил подвешенным в воздухе оно ОБЯЗАТЕЛЬНО меня потом поимеет. У автора пультоскопа все явно наоборот!
Это даст очень много оптимизации к коду! Тот кто в теме, я думаю, понимает.... Аж руки зачесались, но надо спать идти.... Кароче можно жестко оптимизнуть этот адафрут, не теряя ничего... Попробую.... там еще textSize, и с Color`ом можно помутить....UPD: В этом адафруте такая кривота! Или у меня может другое отношение к написаню кода....
ну еще и в авторском коде пультоскопа даже меню вольтажа и линейки перерисовываются _каждый_(блин_зачем?)_раз_ с сигналом ))) уныло.
раз у тебя такой задор появился, и тут на тебя уповают) - есть пару наводок.
цвета - очень правильная мысль. цвет должен быть чтобы HI и LO байты были одинаковые. то есть, будет только 256 "интересных" цветов, ибо вот что делает для записи каждого пиксела библиотека: читает кусок одного порта, применяет маску, пишет обратно порт, читает кусок другого, маска, пишет, строб. фух. а строб это: порт->маска->запись->порт->маска->запись, фух еще раз. и это только HI байт мы записали... нам еще лоу по тому-же алгоритму...
вот и выходит, стандарный fillScreen(0) у меня выполнялся 200+ мс (или 400+, уже не помню), а покареженный мной за 23мс... там где-то в адафруте есть кусок, где if(цвет hi и lo одинаковые) - но криво, далеко, долго, а нам и проверять не надо, мы знаем...
так вот. drawline - свой. в начале функции запоминай/вычиляй значения регистра для строба, которые потом быстро будешь писать в порт, вместо того, чтоб его читать, маскировать, потом снова писать. то есть, первый байт пишем со стробом, и вместо второго просто строб. даалее вместо каждого последующего пиксела того же цвета вызываем два строба (пишем 4 значения в порт, вместо той сумасшедшей возни с чтениями масками стробосблёвертолёт...). готово.)) в хучу раз быстрее.
если сумбурно пишу или не понятно - уже после праздников смогу выложить недоисходники, где я недоковырял немного кода, и теперь мой, например, "спектАскоп"))) - раз тут все коробченки "как-то по дебильному"(с Добкин) принято называть)), просчитывает не 1-3 фпс как у автора, а 150+ фпс (без хитрожопостей некоторых 50+) но зачем мне 150? дядька Наум Приходящий (мисль) подсказал прикрутить библиотеку fht. немного потыкав что куда, и ваши 256 захваченных семплов превращаются в 128 частотных весов всего за 10мс. очень здорово спектАскопом наблюдать, каким шумным и унылым г. оказалось питание юсб в твоем ахрененном новеньком бп за 70 баксов! )) а ты то думал... ну, до спектАскопа))... и звуковикам удобно смотреть ачх - на вход белый/розовый шум, на выход спектАскоп - вот и видно ачх девайса. иначе как для звука - вообще не вижу его. делал регулятор для вентилятора, шим смотришь всего 60КГц, потом 30.. потом 15.. - и не понимаешь, от чего такие пологие фронты - то ли мосфет тяжелый, то ли драйвер или его отсутствие виноваты, или питание. а как минимум - прибор не годен для меандра частотой выше вкл-выкл пальцами, токо очень быстро)) хорошо хоть увидел, где плохо к земле прижимались ворота, нафиг резисторы для разряда мосфета!)
в кратце так: сетАддр, колор, строб строб, строб строб, строб строб....)))) и не будет конца стробу... не забудь где-то вначале включить чипселект)
поддерживаю твою скурпулезность в подходе к коду)) и еше терпеть ненавижу, когда дисплей блин помигивает пуковками (КОТОРЫЕ НЕ МЕНЯЮТСЯ) 1+ раз в сек на 16 МГц или ска ваще на 70 МГц арм стм - шоб у вас кварцы поотсыхали!)))
еще была функция "образец синусоиды" - если усилок в критическом режиме, например, или еще какая фигня - на вход синусоида, стоп кадр (или ран, пофиг) и снизу как шаблон другим цветом рисуется широкая правильная высчитанная синусоида под твоей (автоматом определенной) амплитудой/частотой. а ты гляди - влазит/вылазит)) вот микрофонный усилок паял - один транзистор, явно будут проблемы с перекосами при максимальной амплитуде. включил - сразу увидел искажения. сверху "круглая" синусоида, снизу "острая". и "на глаз" становится намного точнее. добавил резюк ООС. с ООС все уже ОК. можно и % искажения считать. но кому это надо при такой точности ацп...
еще: все мелкие функции, учавствующие в других при рисовании делай дефайнами. можно и не мелкие. у меня drawline полностью написан дефайном. жрет память, только если вызывать более чем в одном фрагменте кода. рисуем только в одном месте. ничего, кроме гиперскорости ты не получишь) каждый вызов функции отожрет 10+ тактов, а если на каждый пиксель/линию их вызывать по несколько... мелочь, но мы же маньяки) и никаких inline - скорее всего компилятор подумает, что ты дурак, и не оптимизирует твою увесистую функцию в инлайн. дефайн же решает. думаю, ты знаешь, как функцию сделать дефайном?
еще много было гениальных идей)) но пока не смог решить, как эта хрень будет печь пиццу и ездить за пивом. в корпусе уже нет места ни для холодильника, ни для индукционной печи...
ЗЫ: все сжато и сумбурно, я плохой архиватор мыслей) сорцы, хелпы, мысли, посильное участие, фото, видео - будет нужно - попробую не забыть адрес этого форума, скину)))
ну и если одолеешь филлскрин за меньше, чем 24 мс - поздравляю, я тебе больше не нужен))) (я рисую 320 линий длиной 240). тебе никто больше не нужен. ты постиг дзен..))) хотя я бы еще ускорил, но этому нет конца... поэтому я все оставляю немного недоделанным, чтобы потом вечно не улучшать это))) а не осилишь 24 мс - маякуй, обкумекаем) может чего недоперезабыл. вспомню - появлюсь.
а, еще фонты. везде только ручные функции и те-же принципы. только я на это пока забил. слишком просто)) графика в 1530 линий рисуется 16 раз в сек, а стандарт.функ. шрифтом 2 строки ну мс 150 пауза была, ужос)) когда-то делал для часов вместо шрифта функцию - помнила предшествующую цифру, чтоб закрашивать/стирать фоном только изменяемые сегменты - очень шустро. можно и здесь применить. например, 2,05 потом 2,06 - одно дело в последней цифре пририсовать левую нижнюю ногу - готово)) или рисовать все цифры и фон предварительно приведя в печатный вид с плавающей точкой и... ТА ну нахер эти библиотеки. я пошуметь люблю.)) но только не тактовыми кнопками. ничего нет хуже. я сделал тач. свип вправо - развертка+, влево -, клик - много чего и где угодно. в режиме пауза я лишился возможности нежно ласкаться в звуках тактовой кнопки ТИК-ТАК-ТИК-ТАК-ТИК-ТАК-ТИК-ТАК-ТИК-... с тачем у меня просто... шшш.. шшш.. т.. (это если очень сильно усилить))) автор вроде не осилил тач?...
Я сразу наоборот подумал- такой поток мыслей ))) Кстати, половину я так и не понял.
У меня тоже есть некоторые измышления по-поводу, но я специально не высказывал, чтоб не отвлекать уважаемого Electronik83. Человек может уделить проекту полчаса в сутки перед сном, а вы ему столько интересного, в результате новую рабочую версию увидим через год, если доживём.
Я считаю, что нужно сделать сначала версию под стандартный Адафрут, а дальше уже химичить с библиотеками.
Ну вот теперь будет чем позаниматся в выходные. Спасибо AS31979. и Всех поздравляю с наступающим "Новым годом" У меня он наступит через 11 часов 35 мин .
Очень интересно. Есть у меня MP-3 модуль встроенный в Радиотехнику У-101. И мне очень даже противно слышать это кряконье при переключение режимов. Лучше-бы просто пик-пик.
можно попробовать использовать MAX232- там как раз есть маломощный преобразователь
Тоже хотел предложить, потому и про потребление спрашивал. Платка с микрухой и всеми нужными детальками стоит копейки, и места занимает 1,5 кв. см. Но, с другой стороны, два диода и два конденсатора на ногу ардуины занимают ещё меньше места, и найти проще.
Для обоих вариантов максимальный ток менее 10 мА, должно хватить.
тут как раз таки источник независимый от контроллера, и двухполярный
хотя max сам по себе кушает неплохо, и греется. Хотя , в контроллере нужно место для кода шим- для этого преобразователя, и порт выделить....
хотя max сам по себе кушает неплохо, и греется. Хотя , в контроллере нужно место для кода шим- для этого преобразователя, и порт выделить....
Возможно, max232 много кушает при передаче интерфейса, но как преобразователь он берёт пару миллиампер (плюс то, что отдаёт в нагрузку), соответственно не греется никак. Недавно проводил измерения.
Для контроллера достаточно строчки в скетче, при этом один из пинов начинает работать повторителем тактового генератора. Недавно где-то встречал, знатоки подскажут.
Интересно откуда с выхода МК возмется отрицательное напряжение, которое Вы выпрямлять собрались?
Интересно откуда с выхода МК возмется отрицательное напряжение, которое Вы выпрямлять собрались?
Возьми с предыдущей страницы схему (где два диода и два конденсатора), и мысленно подключай точку out поочередно на питание и на землю. Делай так пока не возникнет просветление))).
жаль кнопки лайкнуть нет :)
max232 весьма устаревшая микруха. ведь полно же преобрахователей даже в корпусе SMD транзистора и стоит копейки. но не вижу смысла МК спокойно справится, если ток большой не нужен.
жаль кнопки лайкнуть нет :)
Как это нет! В правом верхнем углу поста стрелки.
Electronik83, Сколхозил по быстрому на 5110 :) Запитывал через стаб на 3.3В
Проверил терминал, шустро выводит, роутер выключаю - практически мгновенно прекращается вывод , подключаю - продолжается.
На SSD1306 версии бы так ускорить вывод :) экран побольше расрешением всё-таки.
Может кому пригодиться, нашел простой мобильный способ работы с uart (без компа) - прога Slick USB 2 Serial Term Pro (4pda) + Android с OTG + USB-RS232 адаптеры Profilic или FTDI (в моем случае кабель от Siemens MA-8730P)
Сделал двухполярку на MAX232, их и гамнистая же она на устойчивый запуск... В итоге от 17В на хх до 15В под нагрузкой, ни окаких 10 ма даже речь не идет, не тянет столько. Но 358 хватило, питание не просаживается вообще.
Вариант с ногой микконтролера пробовал, при номиналах способных отдать нормальный ток заваливается передний фронт импульса с ноги микроконтролера, явно перегруз вывода.
Покритикуйте такой вариант инвертора - конденсатор между ногой микроконтролера и затвором это защита от единицы при зависании микроконтролера или ошибке програмиста.
LM358 к сожалению СЛИШКОМ медленный, сервак режет разрешение - частоты 100, 500, 1 000, 2 000, 5 000, 10 000, 20 000 и 50 000 гц. Вход примерно 1 вольт переменки, выход 0,1 - 0,9 постоянки. Кому интересно полный скрин пишите на as31979@gmail.com
Кто может посоветовать операционик поприличнее, но чтобы не на вес золота и распространненый?
я применяю NE5532, довольно шустрый и недорогой оу, полоса пропускания 10 МГц, скорость нарастания - вроде как 9 в/мксек. для генераторов и осциллов на Ардуинках - АЧХ такого Оу самое оно
Вариант с ногой микконтролера пробовал, при номиналах способных отдать нормальный ток заваливается передний фронт импульса с ноги микроконтролера, явно перегруз вывода.
Какая частота, какие ёмкости? Какой ток нагрузки пробовали?
AS31979
Я нередко использую AD823. Частота единичного усиления 17 МГц. Рейл-ту-рейл с полевиками на входе.
AD8042 совсем недорогая, очень быстрая (около 200 вольт в микросекунду), но могут быть проблемы с паразитным напряжением на входе и нет полевиков. Если входной делитель будет переключаемый, то придется мудрить компенсацию.
В своих осликах (Импульс-5110 и Импульс-7735) использую инвертор на МС34063.
Если найдете то неплохо TPS60400 - 60403. Нечто вроде ICL 7660, но на ток до 60 мА.
Я использовал AD8032.
Вот отыскал библу под ST7565 http://arduino.ru/forum/proekty/pultoskop-na-arduino-27mgts?page=37#comment-211685 (такой дисплей стоит в транзистор-тестере LCR-T4(T3)NoStripGrid). Распиновок в интернете хватает. Но наверное перерисовывать скетч осцила будет сложно чтобы подогнать под этот экран. А так в готовый ТТ влить скетч от diksen было бы круто. Тестер и осчил на большом экране))). Как это ещё китайцы пока не догадались? :)
Вынужден признатся что в сообщении Чт, 06/12/2018 - 22:09 #4011 дал неверную информацию, но тогда этого еще не знал и начал поиск замены LM358.
AD823, AD8042, AD8032 - по моему слишком жирно будет для Пультоскопа, самая дешовая от 2$...
Купил пару NE5532 которые посоветовал condensator80 выводы полностью совпадают с LM358.
При попытке заменить в панельке LM358 на NE5532 меня ждал сюрприз - на макетной плате оказалась пара соплей, после их убивания картина резко поменялась.
LM358 - нагрузка напрямую на аналоговый вход, питание -8_0_+8 вольт.
NE5532 - нагрузка напрямую на аналоговый вход, питание -7_0_+7 вольт(жрет больше просело)
Переходные процесы NE5532 на нормальном осциографе начинают резать глаза примерно с 5 кГц, но совершенно не видны на маленьком экране 5110 Пультоскопа.
А вот завал заднего фронта LM358 уже различим даже на экране Пультоскопа.
Оба операционика без проблем отрабатывают синусоиду и треугольник, до 25 кГц Ардуино на 16 Мгц дает четкую картинку, 50 кГц видно, но уже дрожит, понять прямоугольник или синусоида/треугольник без проблем, но подробностей никаких.
AS31979
Если найдете то неплохо TPS60400 - 60403. Нечто вроде ICL 7660, но на ток до 60 мА.
и обвес всего три смд конденсатора, можно добавить LC фильтр на выход
AD823, AD8042, AD8032 - по моему слишком жирно будет для Пультоскопа, самая дешовая от 2$...
Оба операционика без проблем отрабатывают синусоиду и треугольник, до 25 кГц Ардуино на 16 Мгц дает четкую картинку, 50 кГц видно, но уже дрожит, понять прямоугольник или синусоида/треугольник без проблем, но подробностей никаких.
AD8042 совсем не 2 доллара. Но это так, к слову.
Один из самых сложных сигнал для тестов осликов - меандр. На него и стоит ориентироваться. Чем больше максимальная скорость нарастания выходного сигнала ОУ, тем больше меандр будет похож на меандр, а не на трапецию.
Разводка корпусов стандартная практически у всех сдвоенных восьминогих операционников.
О ЛМ358, да собственно о любом ОУ. Чем больше коэффициент усиления мы выставим, тем сильнее ограничим полосу пропускания.
Загнали КУ = 10, например, частота упала в 10 раз. Ноги трапеции сильнее расползлись.
Если КУ не равен 1, то ЛМ358 плохо подходит даже для Пультоскопа.
Electronik83, вы так обнадёжили, мы ждём результат. Хотя бы промежуточный. После внезапной пропажи автора форума начинаешь опасаться подобного.
seri0shka, Все затоились в ожидании пред Новогодней версии 20 от Electronik83.
Похоже на то чувство когда ждёшь посылку из китая))), дойдёт или нет :)
Всех пультоскопщиков с Наступающим!!!
Фух, я уж думал, что-то с сайтом случилось - столько времени без сообщений.
Дак что тут ждать то... После того как память у микроконтроллера конилась - опечалился я чтот с этим пультоскопом. Хотел сделать "свой" адафрут под этот дисплей - не пошло. Достроил свой станок ЧПУ из струйных принтеров с лазером 2,5 ватт на борту - интерес к нему пока ослаб, но есть пару мыслей - надо проверить. Работы навалилось еще тут.... К новому году не смогу скорее всего Вас порадовать. Еще токарный свой разобрал тут... надо обратно собирать..... В новогодние праздники может появиться время - позанимаюсь этим проектом.. Хотя че тут заниматься - собрать все в один код, но пишу я код очень долго, постоянно трясусь над каждым байтом - так меня ZX Spectrum приучил, вы уж простите, я просто мысленно представляю, как там та или иная строка будет транслироваться компилятором в машинный код, постоянно измеряю время выполнения того или иного куска программы... В планах сделать автоматику под этот дисплей, хотя она уже была сделана форумчанами, но я хочу сам - досконально чтобы все работало как надо, а не так - что, работает и ладно. Хочу понимать каждый символ исходника. Так что как то так:)
P.S. Мониторю эту ветку форума постоянно, но она как то не в ту степь ушла...
И всем спасибо, кто надеятся и верят в меня:) Очень сильно мотивирует:)
Какой глобальный подход! Мы в Вас верим и ждём. Только не отказывайтесь от анализатора. Помимо него всё остальное устраивает уже на сегодняшний день. И размер осциллограммы не уменьшайте, в последнем выложенном варианте отлично.
Уж думал, как заинтересовать материально в меру своих возможностей, но география не способствует. Хотя по своему опыту понимаю, что такая работа делается только на "спортивном интересе", если пересчитать в деньги, то у меня столько и нет.)
о да программирование на спектруме дело тонкое. каждая миллисекунда на счету. и вывод картинок через стек изврат еще тот но скорость вывода впечатляет.
чем то похоже программирование атмеги 328 под такие задачи. каждый байт на счету.
а под oled экранчик у вас не планируется?
о да программирование на спектруме дело тонкое. каждая миллисекунда на счету. и вывод картинок через стек изврат еще тот но скорость вывода впечатляет.
чем то похоже программирование атмеги 328 под такие задачи. каждый байт на счету.
а под oled экранчик у вас не планируется?
На 5110 закончу и портирую.
Очень-ОЧЕНЬ ждем! ) И под 5110 и под 1306 )))
Заметил одну особенность в коде пультоскопа (совершенно случайно) - все выводимые линии прямые! Т.е. рисуем линию либо по вертикали, либо по горизонтали.
Это даст очень много оптимизации к коду! Тот кто в теме, я думаю, понимает.... Аж руки зачесались, но надо спать идти.... Кароче можно жестко оптимизнуть этот адафрут, не теряя ничего... Попробую.... там еще textSize, и с Color`ом можно помутить....
UPD: В этом адафруте такая кривота! Или у меня может другое отношение к написаню кода.... Я пребываю в легком шоке. Килобайт свободной памяти я уже добыл, и оперативы свободной на несколько байт прибавилось:))
И как ваще можно назвать функцию drawFastVLine, если она тупо использует обычный drawLine, которая использует много вычислений, чтоб нарисовать линию с неким углом?
Пока вспомнил: Electronik83, скетч выкладывайте и на форуме, пожалуйста, а то с ЯД геморно скачивать (уж несколько раз сталкивался, чуть не час времени уходит у меня, архивы вообще битые, хорошо хоть пофайлово есть возможность). Хотя на этот раз, наверно, ещё и Адафрут будет?
Пока вспомнил: Electronik83, скетч выкладывайте и на форуме, пожалуйста, а то с ЯД геморно скачивать (уж несколько раз сталкивался, чуть не час времени уходит у меня, архивы вообще битые, хорошо хоть пофайлово есть возможность). Хотя на этот раз, наверно, ещё и Адафрут будет?
Ок. Будет Elofruit:) Тока тут пока не вяжется - разберусь:)
Я то думаю, зачем просят скетч по почте прислать... Теперь все понятно.
Так может "на потом" оставить? Народ ждёт, впереди выходные и праздники.)
Может сейчас есть что попроще для "поиграться"?
Electronik83
Это даст очень много оптимизации к коду! Тот кто в теме, я думаю, понимает.... Аж руки зачесались, но надо спать идти.... Кароче можно жестко оптимизнуть этот адафрут, не теряя ничего... Попробую.... там еще textSize, и с Color`ом можно помутить....
Сщединил я две библы для 5110 (PCD8544 и другую нашел в инете без GFX) все работает отлично есть кирилица, все функции для пультоскопа. Нет setCursor и setSize.Быстрая и занимает немного.
Проверял на exsamples. Собрал на на макетке схему пультоскопа, а проверить не могу. Единственный дисплей приказал долго жить.
Единственный дисплей приказал долго жить.
Напишите свой город/регион, возможно, кто из единомышленников изъявит желание подарить или дать во временное пользование для опытов.
Кстати, я подключаю по трём пинам (2, 3, 4). В середине форума писали об этом. В последних прошивках просто менял строку
"Adafruit_PCD8544 display = ......................"
на
"Adafruit_PCD8544 display = Adafruit_PCD8544(2, 3, 4, 6); //CLK,DIN,DC,RST(CE=GND) пины к которым у вас подключен дисплей"
Ну и Ресет по-другому, но в библиотеке остался. На картинке дисплей другой стороной нарисован, разобраться можно по надписям.
я вот в поисках "лишних" пинов тоже ресет на ресет кидал. Но не всегда запускается(в ~10% не заводится ). Это походу будет зависеть от того как они разведены;(дисплей у меня красный, ардуино про мини тоже китайский) Надо задержку какую-то мутить на пол секунды от ресета дуни на ресет экрана (мот на не555)
библы от адафрута и дочерку PCD8544 я тоже обьеденял. и ногодрыг там был через DigitalWrite, я делал напрямую типа
// DIN на 4 пине порта D
#define DIN_HI (PORTD |= 1<<4)
Когда заинтересовался пультоскопом для меня самым важным была возможность самостоятельного ремонта/модернизации.
Вчера наконец слепил прототип имеющий право претендовать на название осцилограф, требования были такими:
Простота, крайне желательно чтобы он состоял из стандартных модулей с Алиэкспресс - банально лень заниматся ЛУТ, пайкой и т.д., да и дешевле получается чем самому паять(именно поэтому не подошол DSO168)
Цена - мне он нужен для практического применения, а большинство приборов при работе гибнет из за банального щелкания клювом...
Достаточно высокое входное сопротивление - рекомендуемое максимальное сопротивление на входе АЦП Arduino 10 кОм и это на штатной частоте 9,6 кГц, но даже 10 кОм вполне способно внести искажения в работу многих схем.
Обезательна возможность отображения двухполярных сигналов, причем достаточно малых величин - заранее никогда не знаешь на что нарвешься, делитель сделать не долго, а вот на оборот иже фиг.
Для проверки/наладки большинства тиристорных преобразователей и многих промышленных интерфейсов вполне хватет тех 25 кГц что достигаются даже на штатных 16 Мгц.
Вот что получилось:
Входное сопротивление 100 кОм, видел на форуме почти такой же входной тракт с входным сопротивлением в 1 МОм, входное напряжение +/- 0,6...0,7В(зависит от диодов VD4,VD5). Ввходное напряжение на АЦП при 0 на входе 0,5В(0 при входе -0,6В, 1В при входе +0,6В). Такое низкое напряжение выбранно потомы что быстродействие операционного усилителя зависит на только от типа операционика, но и от разницы напряжений напряжения питания и выходного напряжения - чем больше разница тем больше быстродействие.
Общение с дисплеем 5110 переведенно на пины А0-А4, входной сигнал на А7.
Выводы кнопок защищенны от ошибок при инициации выводов.
Данный операционик имеет приемлимые характеристики примерно до 50 кГц(прямоугольный сигнал).
Схемма питания это конечно изврат, но зато на стандартном модуле.
Как выяснилось MT3608 допускает огромный диапазон индуктивности - я использовал феритовое кольцо от электронного баласта лампы.
Первичная обмотка 7-8 витков, вторичные примерно 20.
ВНИМАНИЕ имеет значение начало-конец обмоток, если неправильно присоеденить выпрямительные диоды выходное напряжение будет сильно заниженно!!!
А еще были найденны интересные и недорогие модули, да и сам магазин интересен - за доставки 1 преобразователя надо заплатить 0,69$, а за доставку 8 разных позиций одним заказом всего 0,9$:
https://ru.aliexpress.com/item/Power-module-2-8V-to-5-5V-input-plus-or-minus-12V-output-5V-turn-12V/32666568912.html?spm=a2g0s.9042311.0.0.5e3933ed4HvrRY
Вот именно . Я тоже собирал его для ремонта тиристорных преобразователей. Опирационник был подключен по другой схеме. всё работало отлично. Но нужен ущё один вход. Это вход внешней синхронизации. Я сам не смогу его сделать. А он очень нужен, особенно когда работаешь с трёхфазной сетью. Просто развитие осциллогрофа движется в другую сторону. И всем не до этого. Прибор лежит и ждёт.
volodya198024 что именно нужно?
Я все равно буду ковырятся с анналоговыми кнопками, лишние входа есть.
Запуск АЦП при изменении с нуля на единицу на входе синхронизации?
а в скетче что то изменили?
В скетче менял только ноги, https://drive.google.com/open?id=1n9oR3iRKoXW7nag8LHjelyJvekq9u6O5
Основная цель полностью освободить один порт под возможное использование внешнего АЦП. Это пока просто заготовка.
В заводских осциллогрофах есть (Синхронизация от сети). Тут можно использовать аналоговый вход, подавать на него синусоиду от маленького трансформатора и от неё синхронизировать основной луч. Или цифровой вход как вы предложили "Запуск АЦП при изменении с нуля на единицу на входе синхронизации" Само железо я не боюсь. Но программер я вообще ни кто. А приборчик-то нужный. Ешё проблема в том что тиристорные преобразователи изживают себя, на смену им приходит частотное регулирование. Я могу и не успеть этим прибором их по-тыкать. А частотники они скучные, они слишком умные, в них нечего ремонтировать.
volodya198024, и всем, кто желает внешнюю синхронизацию - если использовать второй аналоговый вход для синхронизации - тогда максимальная частота (сэмплинг, или как там называется) упадет больше, чем в двое, т.к. придется обслуживать сразу два канала. А так - с синхрой можно подумать так то... Но я те старые просьбы не доделал и этот Медленный осц не сделал, как хотел... хм...
А шестифайловый скетч как сюда добавлять? У меня для ssd1306 вроде как было 4 файла.... И блин... оно скомпилировалось, и работает! :))) Я кста не профессиональный программист.... любитель...
Появилось время и желание, добрался до програмирования, вспомнил и автора и его родню - кнопки к пинам привязанны капитально, отгрызать прийдется по одной, да ще и в нескольких разных местах.
Как не смешно прицепить внешнюю синхронизацию оказалось в разы проще чем анналоговые кнопки - volodya198024 смотрите видео, если ничего не напутал это то что вам нужно:
https://www.youtube.com/watch?v=1V3eLyn668I
Управляет режимом D13, синхросигнал дискретный с D7 - можна взять любые цифровые пины, думаю можно обойтись вообще одним пином, но там уже нужен нормальный формирователь, а не та порнография что я слепил для теста.
Изменений в коде аж шесть строк:
Сразу поясняю как работает:
С D13 думаю все понятно - просто, пока на D13 логический ноль никакого влияния на работу мое дополнение не оказывает.
Если на D13 логическая еденица включается режим внешней синхронизации, но тут возникает вопрос - а не получится ли так что пока пултоскоп думал логическая еденица на D7уже наступила. Толку стартовать с непонятно какого места?
Вывод? - нужно дождатся окончания синхроимпульса, этим занимаются первые три строки моего дополнения.
Потом нужно дождатся прихода на вход внешней синхронизации логической еденицы, за это отвечают остальные три строки.
Дальше все как в авторской программе.
Можно было сделать еще проще, но данный код гарантирует возможность в любой момент выйти из режима внешней синхронизации.
Побочный эфект - если выдернуть сигнальный провод в режиме внешней синхронизации осцилограф запоминает последнюю картинку, хоть часами рассматривай.
Здесь не приведенно, но в отличии от автора я в заголовке принудительно прописал все используемые пины как входа/выхода, кому как везет - у меня если что то оставил подвешенным в воздухе оно ОБЯЗАТЕЛЬНО меня потом поимеет. У автора пультоскопа все явно наоборот!
раз у тебя такой задор появился, и тут на тебя уповают) - есть пару наводок.
цвета - очень правильная мысль. цвет должен быть чтобы HI и LO байты были одинаковые. то есть, будет только 256 "интересных" цветов, ибо вот что делает для записи каждого пиксела библиотека: читает кусок одного порта, применяет маску, пишет обратно порт, читает кусок другого, маска, пишет, строб. фух. а строб это: порт->маска->запись->порт->маска->запись, фух еще раз. и это только HI байт мы записали... нам еще лоу по тому-же алгоритму...
вот и выходит, стандарный fillScreen(0) у меня выполнялся 200+ мс (или 400+, уже не помню), а покареженный мной за 23мс... там где-то в адафруте есть кусок, где if(цвет hi и lo одинаковые) - но криво, далеко, долго, а нам и проверять не надо, мы знаем...
так вот. drawline - свой. в начале функции запоминай/вычиляй значения регистра для строба, которые потом быстро будешь писать в порт, вместо того, чтоб его читать, маскировать, потом снова писать. то есть, первый байт пишем со стробом, и вместо второго просто строб. даалее вместо каждого последующего пиксела того же цвета вызываем два строба (пишем 4 значения в порт, вместо той сумасшедшей возни с чтениями масками стробосблёвертолёт...). готово.)) в хучу раз быстрее.
если сумбурно пишу или не понятно - уже после праздников смогу выложить недоисходники, где я недоковырял немного кода, и теперь мой, например, "спектАскоп"))) - раз тут все коробченки "как-то по дебильному"(с Добкин) принято называть)), просчитывает не 1-3 фпс как у автора, а 150+ фпс (без хитрожопостей некоторых 50+) но зачем мне 150? дядька Наум Приходящий (мисль) подсказал прикрутить библиотеку fht. немного потыкав что куда, и ваши 256 захваченных семплов превращаются в 128 частотных весов всего за 10мс. очень здорово спектАскопом наблюдать, каким шумным и унылым г. оказалось питание юсб в твоем ахрененном новеньком бп за 70 баксов! )) а ты то думал... ну, до спектАскопа))... и звуковикам удобно смотреть ачх - на вход белый/розовый шум, на выход спектАскоп - вот и видно ачх девайса. иначе как для звука - вообще не вижу его. делал регулятор для вентилятора, шим смотришь всего 60КГц, потом 30.. потом 15.. - и не понимаешь, от чего такие пологие фронты - то ли мосфет тяжелый, то ли драйвер или его отсутствие виноваты, или питание. а как минимум - прибор не годен для меандра частотой выше вкл-выкл пальцами, токо очень быстро)) хорошо хоть увидел, где плохо к земле прижимались ворота, нафиг резисторы для разряда мосфета!)
в кратце так: сетАддр, колор, строб строб, строб строб, строб строб....)))) и не будет конца стробу... не забудь где-то вначале включить чипселект)
поддерживаю твою скурпулезность в подходе к коду)) и еше терпеть ненавижу, когда дисплей блин помигивает пуковками (КОТОРЫЕ НЕ МЕНЯЮТСЯ) 1+ раз в сек на 16 МГц или ска ваще на 70 МГц арм стм - шоб у вас кварцы поотсыхали!)))
еще была функция "образец синусоиды" - если усилок в критическом режиме, например, или еще какая фигня - на вход синусоида, стоп кадр (или ран, пофиг) и снизу как шаблон другим цветом рисуется широкая правильная высчитанная синусоида под твоей (автоматом определенной) амплитудой/частотой. а ты гляди - влазит/вылазит)) вот микрофонный усилок паял - один транзистор, явно будут проблемы с перекосами при максимальной амплитуде. включил - сразу увидел искажения. сверху "круглая" синусоида, снизу "острая". и "на глаз" становится намного точнее. добавил резюк ООС. с ООС все уже ОК. можно и % искажения считать. но кому это надо при такой точности ацп...
еще: все мелкие функции, учавствующие в других при рисовании делай дефайнами. можно и не мелкие. у меня drawline полностью написан дефайном. жрет память, только если вызывать более чем в одном фрагменте кода. рисуем только в одном месте. ничего, кроме гиперскорости ты не получишь) каждый вызов функции отожрет 10+ тактов, а если на каждый пиксель/линию их вызывать по несколько... мелочь, но мы же маньяки) и никаких inline - скорее всего компилятор подумает, что ты дурак, и не оптимизирует твою увесистую функцию в инлайн. дефайн же решает. думаю, ты знаешь, как функцию сделать дефайном?
еще много было гениальных идей)) но пока не смог решить, как эта хрень будет печь пиццу и ездить за пивом. в корпусе уже нет места ни для холодильника, ни для индукционной печи...
ЗЫ: все сжато и сумбурно, я плохой архиватор мыслей) сорцы, хелпы, мысли, посильное участие, фото, видео - будет нужно - попробую не забыть адрес этого форума, скину)))
ну и если одолеешь филлскрин за меньше, чем 24 мс - поздравляю, я тебе больше не нужен))) (я рисую 320 линий длиной 240). тебе никто больше не нужен. ты постиг дзен..))) хотя я бы еще ускорил, но этому нет конца... поэтому я все оставляю немного недоделанным, чтобы потом вечно не улучшать это))) а не осилишь 24 мс - маякуй, обкумекаем) может чего недоперезабыл. вспомню - появлюсь.
а, еще фонты. везде только ручные функции и те-же принципы. только я на это пока забил. слишком просто)) графика в 1530 линий рисуется 16 раз в сек, а стандарт.функ. шрифтом 2 строки ну мс 150 пауза была, ужос)) когда-то делал для часов вместо шрифта функцию - помнила предшествующую цифру, чтоб закрашивать/стирать фоном только изменяемые сегменты - очень шустро. можно и здесь применить. например, 2,05 потом 2,06 - одно дело в последней цифре пририсовать левую нижнюю ногу - готово)) или рисовать все цифры и фон предварительно приведя в печатный вид с плавающей точкой и... ТА ну нахер эти библиотеки. я пошуметь люблю.)) но только не тактовыми кнопками. ничего нет хуже. я сделал тач. свип вправо - развертка+, влево -, клик - много чего и где угодно. в режиме пауза я лишился возможности нежно ласкаться в звуках тактовой кнопки ТИК-ТАК-ТИК-ТАК-ТИК-ТАК-ТИК-ТАК-ТИК-... с тачем у меня просто... шшш.. шшш.. т.. (это если очень сильно усилить))) автор вроде не осилил тач?...
блин, ну я и нудный когда трезвый))
всем удачи и с наступающими! :)
блин, ну я и нудный когда трезвый))
Я сразу наоборот подумал- такой поток мыслей ))) Кстати, половину я так и не понял.
У меня тоже есть некоторые измышления по-поводу, но я специально не высказывал, чтоб не отвлекать уважаемого Electronik83. Человек может уделить проекту полчаса в сутки перед сном, а вы ему столько интересного, в результате новую рабочую версию увидим через год, если доживём.
Я считаю, что нужно сделать сначала версию под стандартный Адафрут, а дальше уже химичить с библиотеками.
Ну вот теперь будет чем позаниматся в выходные. Спасибо AS31979. и Всех поздравляю с наступающим "Новым годом" У меня он наступит через 11 часов 35 мин .
Всех с праздником! ковыряю адафрут.....
Всех с Наступающим Новым годом!!!
(а я руссифицировал голосовую озвучку функций китайской муз. колонки)))).
Удачи в творчестве!
Очень интересно. Есть у меня MP-3 модуль встроенный в Радиотехнику У-101. И мне очень даже противно слышать это кряконье при переключение режимов. Лучше-бы просто пик-пик.