|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
||||||||||||||||
Делфи + ардуино16.01.2023, 15:05. Показов 2417. Ответов 27
Доброго времени суток, уважаемые пользователи форума. Возникла проблема, с которой разобраться совершенно не получается, потому попрошу пожалуйста помощи/совета. Задача и условие такие:
Есть две Arduino Nano, обе подключены к компьютеру и соединены проводом. Одна из них выполняет функцию генератора меандра, т.е. генерирует сигнал с той частотой, которой мы ей задаем. Вот её код:
Вторая Arduino Nano отвечает за считывание импульсов, посылаемых с первой. Вот её код:
Всё это дело общается с программой, написанной на Delphi. Задача этой программы, сначала послать частоту, которую будет генерировать первая ардуино, и считать то, что насчитает вторая ардуино, после чего отобразить это на графике. Проблема в том, что вся эта цепочка работает жутко нестабильно, иной раз она может считать 1000 гц, иной раз не может и просто виснет. Вдобавок, необходимо модифицировать это всё так, чтобы оно было способно было считывать до 8мГц. А реальный лимит этой программы - ~137кГц. Код программы на Delphi:
Вопрос в том, где в этой цепочке ошибка? Или может мне идти в тему arduino, c++, так как ошибка только там? Интерфейс программы на Delphi прикладываю.
0
|
||||||||||||||||
| 16.01.2023, 15:05 | |
|
Ответы с готовыми решениями:
27
Как в Делфи выполнить код, написанный на Делфи, например в поле ввода? У меня стоит Делфи 5, возможно еще поставить и Делфи 7, или будут проблемы?! Здр, пожалуйста попробуйте запутсить .exe написанное на делфи 10 у себя, те у кого делфи 7 |
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||
| 16.01.2023, 17:18 | ||
|
Тут всю процедуру Execute надо переписывать с учетом особенностей работы потоков.
1
|
||
|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
|
| 17.01.2023, 10:24 [ТС] | |
|
Где-то до указанного числа частоты всё работает исправно, а после уже начинаются какие-то баги и т.д. Переделывание с нуля даст нужный результат?
0
|
|
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 17.01.2023, 13:54 | |
|
Кроме неправильной обработки данных в потоке может еще где косяк, код все-же довольно длинный, но то что Execute в текущем состоянии использовать нельзя - это 100%.
1
|
|
|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
|
| 17.01.2023, 14:05 [ТС] | |
|
В любом случае, спасибо за то, что дали наводку
0
|
|
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||||||||||||||||
| 17.01.2023, 14:11 | ||||||||||||||||
|
Вам надо каждое обращение к визуальным компонентам оборачивать в Synchronize или же реализовать уведомления из потока. Я предпочитаю для потоков делать уведомления, это менее громоздко в коде, да и работает лучше.
Например у вас в потоке есть такой код:
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
||
| 17.01.2023, 14:26 [ТС] | ||
|
Спасибо большое! Я вот единственное не понимаю, вроде поток уже реализован, так?
0
|
||
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|
| 17.01.2023, 14:29 | |
|
1
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
|
|
| 17.01.2023, 14:30 | |
|
RobinTT, куда вставлять? Нужно просто поменять код потока (код в Execute) так, как показал Пытливый.
1
|
|
|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
|
| 17.01.2023, 14:30 [ТС] | |
|
Извините, ребят, тупанул. Всем большое спасибо
0
|
|
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|||||||||||
| 17.01.2023, 14:41 | |||||||||||
|
И еще маленький совет. Старайтесь использовать Synchronize, так что-бы его выполнение занимало минимальное время, например делать так не стоит:
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
|
| 17.01.2023, 14:43 [ТС] | |
|
Благодарю! Принял к сведению.
0
|
|
|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
|
| 17.01.2023, 15:12 [ТС] | |
|
0
|
|
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
|||||||||||
| 17.01.2023, 15:26 | |||||||||||
|
У вас D7, для него такая конструкция незнакома, это появилось существенно позже, придется вам писать это иначе. Сначала определить процедуру:
А вообще для меня комбинация Делфи 7 + ардуино это как Конан-варвар и Терминатор. Вроде оба киношные герои и даже актер один и тот же, но представить их рядом как-то трудновато.
2
|
|||||||||||
|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
||
| 17.01.2023, 15:28 [ТС] | ||
|
Благодарю ещё раз!
0
|
||
|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
|
| 17.01.2023, 15:57 [ТС] | |
|
0
|
|
|
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
|
||||||
| 17.01.2023, 16:04 | ||||||
|
А в описание формы ее добавили?
0
|
||||||
|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
|
| 17.01.2023, 16:07 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 26.04.2022
Сообщений: 33
|
|
| 17.01.2023, 16:17 [ТС] | |
|
Так, с описанием я разобрался, теперь другая проблема
0
|
|
|
Модератор
4115 / 2347 / 807
Регистрация: 15.11.2015
Сообщений: 9,328
|
|||||||
| 17.01.2023, 16:28 | |||||||
Сообщение было отмечено RobinTT как решение
Решение
Sleep тут только чтобы цифры не бежали слишком быстро.
1
|
|||||||
| 17.01.2023, 16:28 | |
|
Помогаю со студенческими работами здесь
20
Перенести программу из делфи 7 в делфи XE То что работает в Делфи 7 - не работает в Делфи 2010 нужно делфи связать с аксесом, Таблица "Table1" работает в делфи, а мне нужно "Table2"
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|