Там нужно по Х Все разнеры подгонять. Блин долго это.
подогнал размеры всех надписей =)пока только с осликом разобрался, при входе в ддс или шим у меня почемуто сначало загорается как надо а потом тупо экран белым становится
Р.s нашел проблему почему экран становился белым))) выход ДДС генератора сидел на пине ресета экрана=) поменял пион заработало
Долго думал над тем, как ускорить скорость отрисовки на моем дисплее 240х320 ili9340, заглянул в библиотеку, оказалось функция drawLine() рисует линию отдельными пиксилями, решил написать свою фукцию которая рисует график вертикальными и горизонтальными линиями, назвал ее просто Line()
void Adafruit_ILI9340::Line(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
uint16_t color) {
bool vektor = abs(x0 - x1) > abs (y0 - y1);
if (vektor) {
if (y1 > y0) {
int h = x1 - x0 + 1;
int d = y1 - y0 + 1;
h = h / d;
for (; y0 <= y1; y0++) {
drawFastHLine(x0, y0, h, color);
x0 = x0 + h;
}
}
else {
int h = x1 - x0 + 1;
int d = y0 - y1 + 1;
h = h / d;
for (; y0 >= y1; y0--) {
drawFastHLine(x0, y0, h, color);
x0 = x0 + h;
}
}
}
else {
if (y1 > y0) {
int h = y1 - y0 + 1;
int d = x1 - x0 + 1;
h = h / d;
for (; x1 >= x0; x0++) {
drawFastVLine(x0, y0, h, color);
y0 = y0 + h;
}
}
else {
int h = y0 - y1 + 1;
int d = x1 - x0 + 1;
h = h / d;
for (; x1 >= x0; x1--) {
drawFastVLine(x1, y1, h, color);
y1 = y1 + h;
}
}
}
}
результат превзошол мои ожидания, скорость отрисовки увеличилась в несколько раз) вот видео для сравнения
такс.... в общем допилил еще шим под размеры 1.44 есть небольшие огрехи кое где накладывается снизу где скобки но это пять сек поправить в остальном работает, думаю на сегодня все=))) завтра ддс генератором займусь))
переделал формулу теперь линии нормально отображаются, вопрос к 240265 не подскажете где вы поменяли шим чтобы после 98 сразу100 не показывало никак не соображу
У меня тоже часики на таком. Экранчик нравится, но убивают массштабируемые шрифты. Например, "22 56" могло бы смотреться гораздо красивее, еслиб шриф не получался масштабированием из самого мелкого. Но это вроде лечится. Видел где-то материал по установке других шрифтов. А так...экранчик хороший, и разрешение приятное 128х128
сижу тут кручу верчу и никак не пойму почему так происходит... ДДС генератор работает непонятно либо осцилограф непонятно работает причем 2 ослика...и еще не правильно показывает частоту ШИМ, вот фотки, может кто подскажет
сижу тут кручу верчу и никак не пойму почему так происходит... ДДС генератор работает непонятно либо осцилограф непонятно работает причем 2 ослика...и еще не правильно показывает частоту ШИМ, вот фотки, может кто подскажет
сижу тут кручу верчу и никак не пойму почему так происходит... ДДС генератор работает непонятно либо осцилограф непонятно работает причем 2 ослика...и еще не правильно показывает частоту ШИМ, вот фотки, может кто подскажет
Все правилоно.
Где ваш RC-фильтр?
Он из отчсетом ШИМ формует сигнал.
точно)))) увлекся что забыл про него, спасибо)))))
переделал формулу теперь линии нормально отображаются, вопрос к 240265 не подскажете где вы поменяли шим чтобы после 98 сразу100 не показывало никак не соображу
поробовал скетч для OLED от D.I.M. (взял на страничке автора) скрестить со скетчемGhost_d (уж больно хороша идея выхода в основное меню по нажатию кнопки "ОК").
но увы - места в памяти не хватает (уже и режим терминала отключил).
пишет "Global variables use 2 334 bytes (113%) of dynamic memory, leaving -286 bytes for local variables. Maximum is 2 048 bytes."
поробовал скетч для OLED от D.I.M. (взял на страничке автора) скрестить со скетчемGhost_d (уж больно хороша идея выхода в основное меню по нажатию кнопки "ОК").
но увы - места в памяти не хватает (уже и режим терминала отключил).
пишет "Global variables use 2 334 bytes (113%) of dynamic memory, leaving -286 bytes for local variables. Maximum is 2 048 bytes."
Подкажите пожалуйста,ч его ещё выкинуть можно?
Оперативки не хватает.
массив в который сохраняет АЦП уменьшите и будет память.
вот и мой вклад в развитие=))) вроде все что можно поправил кроме нижнего меню на больших частотах перекрещиваются буквы( пока оставил так... и еще если сравнивать с ls020 пультоскопом то на 1.44 работает медленнее отрисовка ((
PULTOSCOPE_128x64_OLED_block.ino:38:21: error: variable 'sinM' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
Переделал Скетч от LS020 под Доступный экран 1.8 TFT 160x128 SPI St7735.
Есть небольшие лажи . А так вроде работает.
Не пойму какфото загрузть
Вот
К стати линии сделал тонкие в 1 пиксель.
Экран еще с пленкой.
К стати линии сделал тонкие в 1 пиксель.
Экран еще с пленкой.
Это какая версия кода?подскажу.
Не помню с какого поста, не последняя точно, кажется предпоследняя.
1-1Лажа то что график на развертке до 7 не до конца экрана , на предыдущем фото видно. росле 7 все нормально.
2- лажа в генераторе после 78 % ШИМ полоса.
Не помню с какого поста, не последняя точно, кажется предпоследняя.
1-1Лажа то что график на развертке до 7 не до конца экрана , на предыдущем фото видно. росле 7 все нормально.
2- лажа в генераторе после 78 % ШИМ полоса.
Это не лажа, а просто человек который под этот дисплей подправялял, пару мест не доглядел с размерами.
____
как я вам подскажу по толщине линии если не знаю что за скетч,
выложите тогда просто что заливали.
Ну еще в планах перевести напряжение в V/дел и развертку в mS/дел.
Времени мало.
Переделывал Я .Толщину линий специально сделал в 1 пиксель.
К стати линии сделал тонкие в 1 пиксель.
Экран еще с пленкой.
Извините, проглядел что вы уже разобрались с линиями.
добавил новые дефайны для цвета в скетч 240265 и поставил свою библиотеку для 1.44 дисплея 128х128, пока как то так=)))
Вот и мой пультоскоп.
XUMUK
Там нужно по Х Все разнеры подгонять. Блин долго это.
XUMUK
Там нужно по Х Все разнеры подгонять. Блин долго это.
подогнал размеры всех надписей =)пока только с осликом разобрался, при входе в ддс или шим у меня почемуто сначало загорается как надо а потом тупо экран белым становится
Р.s нашел проблему почему экран становился белым))) выход ДДС генератора сидел на пине ресета экрана=) поменял пион заработало
Долго думал над тем, как ускорить скорость отрисовки на моем дисплее 240х320 ili9340, заглянул в библиотеку, оказалось функция drawLine() рисует линию отдельными пиксилями, решил написать свою фукцию которая рисует график вертикальными и горизонтальными линиями, назвал ее просто Line()
результат превзошол мои ожидания, скорость отрисовки увеличилась в несколько раз) вот видео для сравнения
как было
https://youtu.be/iH_5VHrkASo
как стало
https://youtu.be/uHQI2PCLY5g
Alex_Mirko, реально шустрее стало
============
коллеги, киньте пожалуйста, в меня скетчем под такой дисплей - хочу начать мучать АЦП =)
Alex_Mirko, реально шустрее стало
============
коллеги, киньте пожалуйста, в меня скетчем под такой дисплей - хочу начать мучать АЦП =)
вроде внизу на странице автора про пультоскоп была ссылка
такс.... в общем допилил еще шим под размеры 1.44 есть небольшие огрехи кое где накладывается снизу где скобки но это пять сек поправить в остальном работает, думаю на сегодня все=))) завтра ддс генератором займусь))
Xumuk, так ты по горизонтали разверни, может и вместится шкала ШИМа.
Xumuk, так ты по горизонтали разверни, может и вместится шкала ШИМа.
Дисплей квадратный смысла разворачивать нет)
Формулу просто под свой дисплей подкрути вот и все.
эту
Формулу просто под свой дисплей подкрути вот и все.
эту
ОК спасибо завтра попробую
XUMUK догни ШИМ до 100 и обратно , перестает 99% показывать , после 98 сразу 100.
Вот и мой пультоскоп
.
Классно получилось!
Создам галерею пультоскопов в корпусах .
Поправил шкалу ШИМ для 160х128
добавил новые дефайны для цвета в скетч 240265 и поставил свою библиотеку для 1.44 дисплея 128х128, пока как то так=)))
У меня на таком экране часики
переделал формулу теперь линии нормально отображаются, вопрос к 240265 не подскажете где вы поменяли шим чтобы после 98 сразу100 не показывало никак не соображу
У меня на таком экране часики
сижу тут кручу верчу и никак не пойму почему так происходит... ДДС генератор работает непонятно либо осцилограф непонятно работает причем 2 ослика...и еще не правильно показывает частоту ШИМ, вот фотки, может кто подскажет
сижу тут кручу верчу и никак не пойму почему так происходит... ДДС генератор работает непонятно либо осцилограф непонятно работает причем 2 ослика...и еще не правильно показывает частоту ШИМ, вот фотки, может кто подскажет
Все правилоно.
Где ваш RC-фильтр?
Он из отчсетом ШИМ формует сигнал.
сижу тут кручу верчу и никак не пойму почему так происходит... ДДС генератор работает непонятно либо осцилограф непонятно работает причем 2 ослика...и еще не правильно показывает частоту ШИМ, вот фотки, может кто подскажет
Все правилоно.
Где ваш RC-фильтр?
Он из отчсетом ШИМ формует сигнал.
точно)))) увлекся что забыл про него, спасибо)))))
переделал формулу теперь линии нормально отображаются, вопрос к 240265 не подскажете где вы поменяли шим чтобы после 98 сразу100 не показывало никак не соображу
Пока 100% не победил . Победил линию.
Пока 100% не победил . Победил линию.
У меня выводит значение эта строка,
display.print(PWM*100.0/255);
вывожу с двумя знаками после запятой.
Напишите сюда какая строка у вас выводит на дисплей, подмогну.
Разобрался с ШИМ.
Слишком быстрый инкремент и декремент ШИМ. аж на 3 единицы.
if(digitalRead(pravo)==HIGH){
PWM=PWM+3;
if(digitalRead(levo)==HIGH){
PWM=PWM-3;
После перехода через 100% значение 98% с десятичными и он округляет вниз.
выяснил когда вывел с двумя знаками после запятой.
Спасибо bodriy2014
Нужно сделать +2 и -2
Подправить в 2-х местах
поробовал скетч для OLED от D.I.M. (взял на страничке автора) скрестить со скетчем Ghost_d (уж больно хороша идея выхода в основное меню по нажатию кнопки "ОК").
но увы - места в памяти не хватает (уже и режим терминала отключил).
пишет "Global variables use 2 334 bytes (113%) of dynamic memory, leaving -286 bytes for local variables. Maximum is 2 048 bytes."
Подкажите пожалуйста,ч его ещё выкинуть можно?
поробовал скетч для OLED от D.I.M. (взял на страничке автора) скрестить со скетчем Ghost_d (уж больно хороша идея выхода в основное меню по нажатию кнопки "ОК").
но увы - места в памяти не хватает (уже и режим терминала отключил).
пишет "Global variables use 2 334 bytes (113%) of dynamic memory, leaving -286 bytes for local variables. Maximum is 2 048 bytes."
Подкажите пожалуйста,ч его ещё выкинуть можно?
Оперативки не хватает.
массив в который сохраняет АЦП уменьшите и будет память.
Или удалите одну из пил в ДДС ведь там их две.
не, удалял целиком DDS - не помогает(всего 3% добавилось).
думаю что-то с массивами таблиц. видимо куча библиотек занимает много места
вот и мой вклад в развитие=))) вроде все что можно поправил кроме нижнего меню на больших частотах перекрещиваются буквы( пока оставил так... и еще если сравнивать с ls020 пультоскопом то на 1.44 работает медленнее отрисовка ((
karl2233
этот массив можно уменьшить , занимает 701 байт.
byte mass[701];
bodrly2014, а как это сделать? подскажи )
и эта, а щас он сколько занимает? как узнать\посмотреть?
bodrly2014, а как это сделать? подскажи )
и эта, а щас он сколько занимает? как узнать\посмотреть?
Массив из переменных типа байт,
одна переменная занимает в памяти 1 байт,
соответственно 701 займут 701байт.
Нужно изменить там где мы объявляем и везде в коде где есть запись в массив и чтение.
не получается так (byte),
пишет
PULTOSCOPE_128x64_OLED_block.ino:38:21: error: variable 'sinM' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
говорил же, на 128 переходите:)
...или изучайте мат.часть =)
дело явно не в МК, дело в оптимизации кода которую надо постичь как Дзен
...или изучайте мат.часть =)
дело явно не в МК, дело в оптимизации кода которую надо постичь как Дзен
тогда тока asm.
вас ист дас "asm"? о_О
======
в общем, полная версия (с двумя генераторами,с одним влазит) не влазит при использовании такого дисплея (((
будет значит у меня тока Пультоскоп
Подправил код , вынес повторяющиеся фрагменты в отдельные подпрограммы.
Выиграл почти 2 Кбайта. 160х128 ST_7735
ух ты! возьму на вооружение и скопирую метод))
а что ещё можно оптимизировать? =) и ещё вопрос - какой участок отвечает за циферки слева и снизу от графика?
и ещё - 34 и 35 строки - это что за хитрость?
ух ты! возьму на вооружение и скопирую метод))
а что ещё можно оптимизировать? =) и ещё вопрос - какой участок отвечает за циферки слева и снизу от графика?
и ещё - 34 и 35 строки - это что за хитрость?
Начиная с 75 строки и пошло вниз
А 34 и 35 это наверно чтобы не путаться будет-заменять ддс и шим на пин 9
ух ты! возьму на вооружение и скопирую метод))
а что ещё можно оптимизировать? =) и ещё вопрос - какой участок отвечает за циферки слева и снизу от графика?
и ещё - 34 и 35 строки - это что за хитрость?
Да не хитрость это, а назначение пинов.
А вообще можно CS убрать с 10 пина и назначить его выходом DDS , как на 5110.