Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.12.25;
Скачать: [xml.tar.bz2];

Вниз

зациклился на циклах(начинающий)   Найти похожие ветки 

 
LAZudhic   (2011-09-08 17:56) [0]

В цикле надо вставить цикл. теперь по порядку первый цикл чтоб избежать команды goto label(вроде такая команда) дельфи не любит такую команду и не рекамендуется  ее применять .второй цикл для паузы от 0,1 до 0,5сек
как бы вы сделали на моем месте какие команды применили


 
Jeer ©   (2011-09-08 18:16) [1]

break
sleep(x)


 
LAZudhic   (2011-09-08 18:54) [2]

sleep-как меньше одной секунды сделать?


 
DVM ©   (2011-09-08 18:57) [3]


> LAZudhic   (08.09.11 18:54) [2]


> sleep-как меньше одной секунды сделать?

Параметр функции sleep в каких единицах измерения задается ты уже выяснил?


 
QAZ   (2011-09-08 19:00) [4]


> дельфи не любит такую команду и не рекамендуется  ее применять

даладна,сам придумал?


 
LAZudhic   (2011-09-08 19:10) [5]

спс-я НаЧиНаЮщИй САМОУЧКА =)


 
DVM ©   (2011-09-08 19:11) [6]


> LAZudhic   (08.09.11 19:10) [5]

мы все тут самоучки


 
LAZudhic   (2011-09-08 19:20) [7]

я тут по такой причине бейсик-любимый мой язык прекрасно работает с сом портом а вот с LPT проблемы и пришлось д7 изучать а то я схему собрал шаговый двигатель от принтера подключил к LPT


 
Игорь Шевченко ©   (2011-09-08 19:25) [8]

и не шагает


 
LAZudhic   (2011-09-08 19:29) [9]

все шагает могу даже программу кинуть но только медлено шагает


 
LAZudhic   (2011-09-08 19:32) [10]

unit Unit155;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
function Inp32(PortAdr: word): byte; stdcall; external "inpout32.dll";
function Out32(PortAdr: word; Data: byte): byte; stdcall; external "inpout32.dll";
procedure TForm1.Button1Click(Sender: TObject);
var i,j,a,b: Integer;
begin
for i := 1 to 400 do
begin
out32(888,17);
out32(888,19);
sleep(1);
out32(888,18);
out32(888,22);
sleep(1);
out32(888,20);
out32(888,28);
sleep(1);
out32(888,24);
out32(888,25);
sleep(1);
end;
end;

end.


 
Rouse_ ©   (2011-09-08 19:34) [11]


> unit Unit155;

0_0 фига, у тебя сколько там юнитов?!!!


 
LAZudhic   (2011-09-08 19:47) [12]

но вот и первое что =) я неделю в д7 и на первом форуме где задал вопрос и теперь у меня вопрос что такое юнит извиняюсь за малограмотность=(


 
Rouse_ ©   (2011-09-08 19:51) [13]

Юнит, это PAS файл, в котором ты пишешь код. Дельфи их нумерует по порядку от Unit1 до ...


 
DVM ©   (2011-09-08 19:52) [14]


> Rouse_ ©   (08.09.11 19:34) [11]

на каждый шаг по юниту :)


 
LAZudhic   (2011-09-08 19:58) [15]

спс нет просто так его сохранил


 
DVM ©   (2011-09-08 20:01) [16]


> LAZudhic   (08.09.11 19:58) [15]

раз уж начинающий, приучайся сразу давать осмысленные имена всему и вся. Иначе потонешь в этих Unit100500 и Button8735. Для компонентов можно использовать венгерскую нотацию, типа btnStart или dlgOpenFile или lblTime.


 
LAZudhic   (2011-09-08 20:13) [17]

спс надеюсь что скоро буду так и делать с вами приятно общаться =)


 
LAZudhic   (2011-09-08 20:27) [18]

надеюсь через неделю более менее сделаю то что желаю сотворить на три или четыре движка а еще через неделю регулировку скорости потом месяца три чтобы управлялась по чертежу мой маленький чпу(хватило бы терпения)


 
LAZudhic   (2011-09-08 20:31) [19]

надеюсь через неделю более менее сделаю то что желаю сотворить на три или четыре движка а еще через неделю регулировку скорости потом месяца три чтобы управлялась по чертежу мой маленький чпу(хватило бы терпения)


 
Омлет ©   (2011-09-08 20:39) [20]

Куда же двигатель будет шагать без goto? )


 
LAZudhic   (2011-09-08 20:43) [21]

до конца цикла =)


 
QAZ   (2011-09-08 20:43) [22]

> sleep(1);
измеряется в милисекундах


 
LAZudhic   (2011-09-08 20:53) [23]

как в милиСЕКУНДАХ а ты точно уверен а то ведь у меня движок та крутится а без sleep стоял и светодиоды просто светились а теперь моргают хотя тут надо в справочник заглянуть по микрухам я на К155ТМ7 собирал


 
QAZ   (2011-09-08 20:58) [24]

заоно загляни в справочник по api
http://msdn.microsoft.com/en-us/library/ms686298(v=vs.85).aspx


 
DVM ©   (2011-09-08 20:58) [25]


> LAZudhic   (08.09.11 20:53) [23]
> как в милиСЕКУНДАХ а ты точно уверен

Я ж тебе говорю, посмотри в документацию, ты как будто не слышишь.

http://msdn.microsoft.com/en-us/library/ms686298(v=VS.85).aspx


 
Сергей М. ©   (2011-09-08 21:08) [26]


> скоро буду так и делать с вами


Не надо с нами так делать.

Мы тебе не гоуту с лабелЯми.


 
Сергей М. ©   (2011-09-08 21:13) [27]


> бейсик-любимый мой язык прекрасно работает с сом портом
> а вот с LPT проблемы и пришлось д7 изучать


А кто тебе сказал что в д7 нет проблем с LPT, в отличие от тобой горячо любимого васика ?

Ровно столько же проблем).. И ровно столько же их отсутствия)


 
Ega23 ©   (2011-09-08 21:13) [28]


> как в милиСЕКУНДАХ а ты точно уверен

В мирное время - точно в миллисекундах.
В военное - есть нюансы, там и значение синуса pi/2 может четырёх достигать.


 
Сергей М. ©   (2011-09-08 21:16) [29]


> В цикле надо вставить цикл


Это чтобы быстрей шагал ?
Всё равно не взлетит без гоуту лабель, потому что дельфи не любит такую команду


 
LAZudhic   (2011-09-08 21:17) [30]

ну тогда получается ручником служит inpout32.dll,а может LPT=)но у меня движок порядка 2-3 минут вращается вот и прикинь какой цикл начиная с 1 до 400 и время работы


 
LAZudhic   (2011-09-08 21:21) [31]

насчет портов как мне довелось понять надо DLL и дело в шляпе


 
Сергей М. ©   (2011-09-08 21:33) [32]


> мне довелось понять надо DLL и дело в шляпе


Прискорбно что тебе не довелось понять что ту же самую dll можно с тем же самым успехом можно использовать и в горячо тобой любимом васике.

А в васик, в отличие от д7, очень любит гоуту лабель.


 
DVM ©   (2011-09-08 21:35) [33]

он похоже переводчиком пользуется на русский


 
Игорь Шевченко ©   (2011-09-08 22:56) [34]

Есть один момент - Windows таки не предназначена для решения задач реального времени, поэтому Sleep - это минимально возможное время задержки, а каким оно будет реально, сказать невозможно. Очевидно, что не меньше, но вот насколько. Поэтому лучше нужные задержки задавать внутри драйвера устройства, там больше шансов выдержать интервалы.

Впрочем, все зависит от задачи. Если задача просто потыкаться, то и в пользовательской программе можно интервалы задавать, секундой больше, секундой меньше - без разницы.


 
Inovet ©   (2011-09-08 23:51) [35]

А что за станок, печатные платы изготавливать поди?


 
han_malign   (2011-09-09 08:57) [36]


> В мирное время - точно в миллисекундах.
> В военное - есть нюансы, там и значение синуса pi/2 может четырёх достигать.

вот так может и будет похоже на 1мс:
uses MMSystem;
...
timeBeginPeriod(1);
for ... sleep(1); ...
timeEndPeriod(1);

- вроде Русинович писал, что мультимедийный таймер глобально квант изменяет...

хотя лучше конечно REALTIME_PRIORITY_CLASS/THREAD_PRIORITY_TIME_CRITICAL
и спин вокруг QueryPerformanceCounter,
главное убедиться что  CPU ядер хотя бы два...


 
han_malign   (2011-09-09 09:26) [37]

- более-менее честный подход, с незначительным дребезгом...
total:= loopCount * stageCount;
timeBeginPeriod(1);
loop_stage:= 0;
start:= timeGetTime;
while(loop_stage < total)do begin
   _time:= timeGetTime - start;
   if( _time >= loop_stage * delayMS)then begin
        case(loop_stage mod stageCount)of
        0: begin
           out32(888,17);
           out32(888,19);
        end;
        ...
        3: begin
           out32(888,24);
           out32(888,25);
        end;
        ...
        end;
        inc(loop_stage);
   end else
      sleep((loop_stage * delayMS - _time) div 2{запас на дребезг кванта});
end;
timeEndPeriod(1);


 
han_malign   (2011-09-09 09:45) [38]

Другое дело, что сам out32 может быть слишком длительным(тракт: приложение -(прослойки вроде inpout32.dll)-> драйвер -> устройство) и один фиг необходимые тайминги не будут соблюдаться...
Это уже решается только независимым(внешним) контроллером на который в потоковом режиме загружается циклограмма с метками времени... Соответственно, если нужно непрерывное 7*24 управление, глубина "предсказания" циклограммы(и соответственно буфера контроллера) рассчитывается из латентности тракта приемо-передачи.
(собственно так и выглядит "мягкое реальное время")


 
LAZudhic   (2011-09-12 16:45) [39]

Простите меня, что не мог раньше ответить. В реальности движок работает 33 секунды этой установкой for 400. Станок надеюсь будет работать по дереву (но до это ещё долго) ну а теперь начинаю изучать команды break и go to .Всем спасибо!!!


 
Сергей М. ©   (2011-09-12 16:54) [40]


> Станок надеюсь будет работать по дереву


Ну по дереву еще ладно - дерево и не такое стерпит)..
Там плюс-минус туда-сюда пол-сантимметра потом допиливается, шпаклюется-шлифуется и лажа "станкопрограммиста" в результате практически не заметна)



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.12.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.006 c
2-1316021139
pravd
2011-09-14 21:25
2011.12.25
работа с БД paradox


15-1315548799
user1987
2011-09-09 10:13
2011.12.25
Часы на рабочем столе


2-1316405617
i2e
2011-09-19 08:13
2011.12.25
Прозрачный фон при выводе текста


2-1316145462
i2e
2011-09-16 07:57
2011.12.25
Узнать ширину/высоту полосы прокрутки


15-1315645961
user1987
2011-09-10 13:12
2011.12.25
Каким образом назначен IP?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский