Страница 1 из 5

Цифровой осциллограф с нуля.

Добавлено: Вс дек 19, 2021 16:32:26
linkov1959
Прежде чем мучить stm32h743 решил собрать примитивный осцил на F103. Среда разработки CubeIDE .
Работать в ней только начал и на Си никогда не работал, поэтому с нуля.
Буду рад любой помощи.
Сразу решил взять быка за рога и научился запихивать в массив данные АЦП с двойной скоростью, 8000 отсчетов за 3mS.
Запустил tft ILI9341 SPI и могу выводить точки, линии и текст.
Ширина экрана 320 и наверное массив такой должен быть?
В массиве числа до 4095, а высота экрана 240, значит числа в массиве нужно делить на 17?
Выводить по одной точке, а потом очищать экран? Если выводить повторно, то как синхронизировать?

Re: Цифровой осциллограф с нуля.

Добавлено: Вс дек 19, 2021 18:36:20
Novice user
Я делал массив 1024 точки,потом искал точку синхронизации
Ацп переключил на 8 бит-там скорость быстрее
Отрисовка-при первой отрисовке просто рисовал нужное,затем этот массив сохранял в массив2(назовем его так),при след отрисовке сначала затирал цветом экрана график используя массив2,рисовал сетку и потом новый график
Использовал исходники осциллографа Лори,

Re: Цифровой осциллограф с нуля.

Добавлено: Вс дек 19, 2021 19:25:25
linkov1959
Novice user, На 8бит не получилось переключить F103, почитаю даташит и поищу исходники Лори. Значит затираем не весь экран, а только 320 пинов, остроумно.

Re: Цифровой осциллограф с нуля.

Добавлено: Вс дек 19, 2021 19:42:21
Novice user
Можно весь экран но тогда будет дольше
https://ad-res.ru/controllers/oscillograf.php

Я использовал F303,забыл...

Re: Цифровой осциллограф с нуля.

Добавлено: Вс дек 19, 2021 20:44:36
jcxz
[uquote="linkov1959",url="/forum/viewtopic.php?p=4144457#p4144457"]В массиве числа до 4095, а высота экрана 240, значит числа в массиве нужно делить на 17?[/uquote]Лучше умножать. Так значительно быстрее.
И ничего не стирать, а просто рисовать поверх массив из множества вертикальных линий. Так тоже быстрее. И главное - так будет без мерцания.

Re: Цифровой осциллограф с нуля.

Добавлено: Вс дек 19, 2021 20:58:45
Novice user
[uquote="jcxz",url="/forum/viewtopic.php?p=4144635#p4144635"]И ничего не стирать[/uquote]
Ха-ха!рассмешил...
И тогда на экране одно изображение будет наложено на много-много других изображений и весь экран заполнится одним цветом

Re: Цифровой осциллограф с нуля.

Добавлено: Вс дек 19, 2021 21:22:00
linkov1959
Novice user, спасибо за ссылку, а 8бит будет на Н743. Я только не понял, у Лори АЦП сдвоены или только ADC1? Надо включать multimode.Mode = ADC_DUALMODE_INTERLFAST;

Добавлено after 4 minutes 41 second:
jcxz, А это идея! Не стирать, а касаться щупом кратковременно, а по картинке гадать!

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 17:50:12
Мурик
jcxz правильно советует.

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 18:53:14
Novice user
jcxz, не сразу дошло как рисовать,но не думаю что это быстрее,в железе не проверял
Фактически получается что старое все таки стирается

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 19:06:37
jcxz
[uquote="linkov1959",url="/forum/viewtopic.php?p=4144671#p4144671"]jcxz, А это идея! Не стирать, а касаться щупом кратковременно, а по картинке гадать![/uquote]Гадать будете когда всё мерцать будет как новогодняя ёлка. :)))
А если ещё частота обновления LCD неудачно наложится на частоту ваших рисований, то на экране всякие чудеса будете лицезреть. Не новогодние. :o

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 19:57:40
linkov1959
jcxz, Я думал, шутка такой. Вот заготовка проекта в CubeIDE, можно пробовать, там всё настроено. При старте в adc[8000] уже сидят выборки первых 4mS с А0, А1 stm32f103. Дисплей ILI9341 SPI. Для пробы выводятся шрифты и две точки. Давайте хоть сеточку нарисуем.
https://drive.google.com/file/d/1ekmOE1 ... sp=sharing

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 20:37:43
Martian
[uquote="linkov1959",url="/forum/viewtopic.php?p=4144457#p4144457"]Прежде чем мучить stm32h743 решил собрать примитивный осцил на F103[/uquote]Лучше начать всё-таки сразу мучать H7 - различие в графических возможностях настолько огромное, что все наработки с F103 окажутся бессмысленными. Гляньте возможности разработки GUI c использованием микроконтроллеров STM32H7 и Подключение дисплея к STM32H7 с помощью LTDC - наличие аппаратных возможностей у H7 для работы с графикой и дисплеями очень упростит работу.

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 20:47:30
jcxz
[uquote="Martian",url="/forum/viewtopic.php?p=4145222#p4145222"]Лучше начать всё-таки сразу мучать H7 - различие в графических возможностях настолько огромное, что все наработки с F103 окажутся бессмысленными.[/uquote]Лучше тогда уж начать с LPC4370. Различие в возможностях АЦП настолько огромное, что H7 с его дохлым АЦП просто бессмысленен. :))) К тому же пробегала инфа, что АЦП у H7 ещё и очень шумный.
И какие такие супер-возможности нужны для осциллографа? Всегда думал, что для рисования оциллограмм нужно только уметь рисовать вертикальные линии. Всё. Других "возможностей" не нужно.

Добавлено after 2 minutes 26 seconds:
[uquote="Martian",url="/forum/viewtopic.php?p=4145222#p4145222"]Подключение дисплея к STM32H7 с помощью LTDC[/url][/uquote]Полезно всё-таки читать исходный пост темы: автор использует LCD подключенный по SPI. И LTDC ему как мёртвому припарка.

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 21:30:05
Martian
Полезно не только читать. Автор не делал упор на тип дисплея. Он сообщил, что хочет попробовать силы на более простом F103, чтобы потом перейти на H7.
Цифровой осциллограф не ограничивается рисованием вертикальных линий.
jcxz писал(а):Лучше тогда уж начать с LPC4370.
Полезно всё-таки читать исходный пост темы: автор планирует использовать H7.

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 22:24:39
linkov1959
Моя сеточка

for(v=40; v < 240; v+=40)
{
for( g=0; g < 320; g+=4)
{
ILI9341_Draw_Pixel(g, v, WHITE);
}
}
for(g=40; g < 320; g+=40)
{
for( v=0; v < 240; v+=4)
{
ILI9341_Draw_Pixel(g, v, WHITE);
}
}

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 22:27:14
jcxz
[uquote="linkov1959",url="/forum/viewtopic.php?p=4145311#p4145311"]Моя сеточка

for(v=40; v < 240; v+=40)
{
for( g=0; g < 320; g+=4)
{
ILI9341_Draw_Pixel(g, v, WHITE);
}
}
for(g=40; g < 320; g+=40)
{
for( v=0; v < 240; v+=4)
{
ILI9341_Draw_Pixel(g, v, WHITE);
}
}[/uquote]Это учший способ создать максимально тормозной код. :)))

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 22:30:59
Martian
а почему не через ILI9341_Draw_Horizontal_Line и ILI9341_Draw_Vertical_Line хотя бы ?

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 22:35:55
linkov1959
Дисплей будет этот, а проц H743, на 103F отработаю навыки. Сигнал пока буду подавать на проц непосредственно с генератора FY3200 на вход, одна ошибка и процу кранты, а 103F не жалко.

Добавлено after 1 minute 57 seconds:
[uquote="Martian",url="/forum/viewtopic.php?p=4145315#p4145315"]а почему не через ILI9341_Draw_Horizontal_Line и ILI9341_Draw_Vertical_Line хотя бы ?[/uquote]
Точками пунктир получается, мне так больше нравится.

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 22:36:37
Martian
это несколько странный путь. Порт надо защищать в любом случае любого мк... а сейчас, в это смутное время, разбрасываться армами - жалко любыми. Дефицит армов вполне может быть ещё год.

Re: Цифровой осциллограф с нуля.

Добавлено: Пн дек 20, 2021 22:37:44
linkov1959
jcxz, я только учусь, а как надо? Сетка мгновенно появляется.