Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2008, 15:07   #1
Иван36
 
Регистрация: 31.03.2008
Сообщений: 4
По умолчанию Частотомер

Хочу мерить частоту оборотов на двигателе - железо готово(опрос LPT) - набираюсь мыслей по софту:
В MFC - Edit box и Кнопка на которой наввешу :
таймер 1 сек . который
запускает бесконечный цикл с опросом порта и записью единичек ....
Ну и надеюсь видеть цифру новую каждую сек.
Вопрос - как закончить цикл при наступлении следующей команды от таймера?
Иван36 вне форума Ответить с цитированием
Старый 31.03.2008, 15:50   #2
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

Думаю проще всего объявить переменную типа boolean, например а
var a:Boolean = false;
перед циклом пишим a:=false;
потом в цикле прописать
if a then exit;
и в таймере если тебе надо выйти из цикла присвоим a:=true;
Вроде так
Код:
implementation

var a:Boolean = false;

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
a:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
var d:Longint;
begin
a:=false;
while 0=0 do
 begin
  Application.ProcessMessages;
  if a then exit;
  inc(d);
  Caption:=IntToStr(d)
 end;
end;

Последний раз редактировалось Simply-Art; 31.03.2008 в 15:55. Причина: привел пример
Simply-Art вне форума Ответить с цитированием
Старый 01.04.2008, 08:30   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А мне кажется что тут лучше было бы заменить таймер потоком+задержкой на секунду, после которой бы данные считывались.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц