Вверх ↑
Этот топик читают: Гость
Ответов: 2
Рейтинг: 0
#1: 2018-07-11 22:49:45 ЛС | профиль | цитата
Привет ВСЕМ !
Я новенький у вас. Мне очень понравилась ваша программа.
Вот пытался собрать ДАТАЛОГГЕР на ардуино с графиком на копутере.
Всё работает но медленно. График пульса сердца запаздывает. Может подскажите как решить проблемму?
тест.jpg


[scroll=[list]Make(delphi)
ver(4.05 build 186)
Add(ComboBox,13169687,574,210)
{
Left=270
Top=40
Width=80
Height=21
Text="Port N"
}
Add(Timer,443896,378,392)
{
Interval=1
link(onTimer,11058779:doData,[])
}
Add(COM,10751473,581,301)
{
BaudRate=57600
TimeOut=1
link(onRead,14360003:doEvent1,[])
link(Port,13169687:String,[])
}
Add(EnumCOM,6532786,504,210)
{
OutType=0
link(onEnumPorts,13169687:doAdd,[])
}
Add(Hub,16350958,322,336)
{
InCount=2
OutCount=5
link(onEvent1,16399282:doEvent1,[(382,342)(382,307)])
link(onEvent4,13502940:doEvent1,[(368,363)(368,223)])
}
Add(DoData,11058779,427,392)
{
Data=Integer(6)
link(onEventData,10751473:doRead,[(520,398)(520,335)])
}
Add(Hub,14349009,357,266)
{
OutCount=5
link(onEvent1,13502940:doEvent2,[(385,272)(385,230)])
link(onEvent2,10751473:doRXClear,[(476,279)(476,321)])
link(onEvent3,443896:doTimer,[(375,286)(375,398)])
}
Add(Hub,16399282,427,301)
{
InCount=3
OutCount=1
link(onEvent1,10751473:doOpen,[])
}
Add(MainForm,8652128,266,252)
{
Width=1182
Height=715
Caption="H.V.P.G."
BorderStyle=4
Icon=[]
link(onCreate,14349009:doEvent1,[])
}
Add(Hub,13502940,399,217)
{
InCount=3
link(onEvent1,13169687:doClear,[])
link(onEvent2,6532786:doEnumPorts,[(459,230)(459,216)])
}
Add(Memo,6752638,1015,343)
{
Left=1010
Top=20
Width=160
Height=650
}
Add(Hub,5147087,742,462)
{
InCount=3
OutCount=6
link(onEvent1,14700344:doEvent1,[(777,468)(777,517)])
link(onEvent2,11682426:doData,[(882,475)(882,181)])
link(onEvent3,14362842:doNext,[(768,482)(768,461)(513,461)(513,440)])
link(onEvent4,6752638:doAdd,[(886,489)(886,349)])
link(onEvent6,1245690:doTimer,[(768,503)(768,479)(415,479)(415,454)])
}
Add(BlockFind,3658924,777,224)
{
IncludeBlock=1
StartBlock="d"
EndBlock="a"
link(onSearch,15950520:doEvent1,[(821,230)(821,202)])
}
Add(Button,4382896,308,217)
{
Left=175
Top=30
Width=85
Height=40
Caption="Refresh Ports"
link(onClick,13502940:doEvent3,[(370,223)(370,237)])
}
Add(BitBtn,5134980,1246,203)
{
Left=355
Top=30
Width=95
Height=40
Font=[MS Sans Serif,12,1,0,1]
Caption="Connect"
Data=String(Connect)
link(onClick,1107594:doCompare,[(1304,209)(1304,216)])
}
Add(DoData,10879103,1099,175)
{
Data=String(Disconnect)
link(onEventData,392037:doEvent1,[(1140,181)(1140,216)])
}
Add(If_else,1107594,1330,210)
{
link(onTrue,16350958:doEvent1,[(1374,216)(1374,279)(310,279)(310,342)])
link(onFalse,4218966:doEvent1,[(1392,223)(1392,237)])
link(Op1,8469874:Text,[(1336,198)(1329,198)])
link(Op2,13695874:Text,[(1343,204)(1378,204)])
}
Add(Memo,8469874,1323,140)
{
Left=1555
Top=235
Visible=1
Strings=#7:Connect|
}
Add(Memo,13695874,1372,140)
{
Left=1485
Top=240
Visible=1
Strings=#7:Connect|
}
Add(Hub,392037,1155,210)
{
InCount=2
OutCount=3
link(onEvent1,5134980:doCaption,[(1207,216)(1207,209)])
link(onEvent2,14596791:doEvent1,[(1200,223)(1200,174)])
}
Add(Hub,14596791,1253,168)
{
link(onEvent1,8469874:doClear,[(1310,174)(1310,153)])
link(onEvent2,8469874:doAdd,[(1299,181)(1299,146)])
}
Add(DoData,3851974,1099,217)
{
Data=String(Connect)
link(onEventData,392037:doEvent2,[])
}
Add(Hub,4218966,1421,231)
{
OutCount=3
link(onEvent1,10751473:doClose,[(1447,237)(1447,275)(569,275)(569,314)])
link(onEvent2,3851974:doData,[(1447,244)(1447,234)(1087,234)(1087,223)])
link(onEvent3,15493329:doOff,[(1447,251)(1447,216)(702,216)(702,160)])
}
Add(DoData,11682426,1001,175)
{
link(onEventData,10879103:doData,[])
}
Add(LED,15493329,714,147)
{
Left=465
Top=40
WinStyle=4
ColorOn=65280
}
Add(Hub,15950520,833,196)
{
OutCount=3
link(onEvent1,15493329:doOn,[(859,202)(859,184)(702,184)(702,167)])
}
Add(Button,3028797,931,350)
{
Left=940
Top=40
link(onClick,12350761:doEvent1,[])
}
Add(BlockFind,10752506,679,455)
{
IncludeBlock=1
StartBlock="d"
EndBlock="a"
link(onSearch,5147087:doEvent1,[(727,461)(727,468)])
}
Add(EventFromData,13827267,861,497)
{
}
Add(Hub,12350761,980,350)
{
InCount=3
link(onEvent1,6752638:doClear,[])
}
Add(Plotter,1913846,917,511)
{
Left=180
Top=85
Width=820
Height=575
Name="1"
}
Add(PlotLines,7458498,861,546)
{
Grapher="1"
Size=5
Step=1
MaxValues=200
link(ValueY,13827267:GetData,[])
}
Add(Hub,14360003,644,308)
{
OutCount=4
link(onEvent1,3658924:doSearch,[(718,314)(718,230)])
link(onEvent2,10752506:doSearch,[(668,321)(668,461)])
}
Add(Hub,14700344,791,511)
{
InCount=3
OutCount=4
link(onEvent1,13827267:doData,[(840,517)(840,503)])
link(onEvent2,7458498:doAdd,[(840,524)(840,552)])
}
Add(LedNumber,1537301,588,434)
{
Left=525
Top=15
Width=140
Height=50
Point(doText)
}
Add(Counter,14362842,525,434)
{
link(onNext,1537301:doText,[])
}
Add(MMTimer,1245690,427,448)
{
link(onTimer,15121943:doEvent1,[])
}
Add(Hub,15121943,476,448)
{
OutCount=3
link(onEvent1,14362842:doReset,[])
}
[/list]][/scroll]



Заранее Спасибо!!

Редактировалось 5 раз(а), последний 2018-07-11 23:00:40
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8887
Рейтинг: 823
#2: 2018-07-12 00:27:17 ЛС | профиль | цитата
alextulanov, вы читаете из СОМ порта по 6 байт 64 раза в секунду (шаг таймера 1/64 сек), а график вполне отрисовывает и 200 тчк/сек
(Не надо копировать текст из блокнота, нужно выделить схему в поле HiAsm скопипастить в тегах "Скролл" и "Код")


Add(MainForm,2953706,49,91)
{
}
Add(Plotter,10095585,259,133)
{
Left=25
Top=45
Width=340
Height=200
Name="MyPlotter"
}
Add(PlotLines,16437903,259,91)
{
Grapher="MyPlotter"
Step=1
MaxValues=200
}
Add(ScrollBar,641306,49,175)
{
Left=20
Top=15
Width=155
Min=5
Position=15
link(onPosition,5094567:doEvent1,[])
}
Add(Button,3314564,91,91)
{
Left=265
Top=15
Caption=">>"
link(onClick,12938763:doStart,[])
}
Add(Random,16249244,210,91)
{
Min=1
link(onRandom,16437903:doAdd,[])
}
Add(Thread,12938763,154,91)
{
Delay=15
Point(doDelay)
link(onExec,16249244:doRandom,[])
}
Add(Hub,5094567,105,175)
{
link(onEvent1,12938763:doDelay,[(144,181)(144,111)])
link(onEvent2,13580343:doOperation,[])
}
Add(Button,15431673,91,133)
{
Left=325
Top=15
Caption="II"
link(onClick,12938763:doStop,[(136,139)(136,104)])
}
Add(Label,13642728,259,182)
{
Left=180
Top=15
Caption="66 Тчк/сек"
}
Add(Math,13580343,154,182)
{
OpType=3
Op1=1000
ResultType=0
link(onResult,307447:doString,[])
}
Add(FormatStr,307447,210,182)
{
DataCount=1
Mask="%1 Тчк/сек"
link(onFString,13642728:doText,[])
}

карма: 19

0
Ответов: 2
Рейтинг: 0
#3: 2018-07-17 16:37:14 ЛС | профиль | цитата
Большое спасибо!
Может вы можите подсказать как увеличить скорость передачи данных с Ардуино?
при чтении с аналогово порта?
Пробовал использовать библиотеку CyberLib.h

Arduino NANO Speed 57600

#include "CyberLib.h"

void setup()
{
Serial.begin(57600);
}

void loop()
{

Serial.print("d");
Serial.print(A0_Read);
Serial.println("a");
delay(5);
}

Или таким образом?


Код программы контроллера Arduino:
const int adc_5 = A5; // ADC port number
unsigned long set_time; // Time of next clock
byte adc_bytes[256]; // Buffer for scaled ADC data

void setup() {
Serial.begin (115200); // bit/s
}

void loop(){
unsigned long time = millis(); // Current time in ms

// ADC data capturing
for (int i = 0; i < 256; i++) {
int val = analogRead(adc_5);
adc_bytes[i] = map(val, 0, 1023, 0, 255);
}

// send ADC data into serial port
Serial.print(«A»); // «A» is header
for (int i = 0; i < 256; i++) {
Serial.write(adc_bytes[i]);
}

if (time > set_time) {
set_time = set_time + 70; // RT clock is 70 ms
}
}

Редактировалось 25 раз(а), последний 2018-07-18 11:45:06
карма: 0

0
3
Сообщение
...
Прикрепленные файлы
(файлы не залиты)