Управление изображением на мониторе через COM порт

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2409
Зарегистрирован: Ср дек 03, 2008 21:00:19

Сообщение FRIM@N »

пока вывод просто вывести в окно строку как в паскале --что-бы увидеть что часть программы работает

Код: Выделить всё

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
function InPort(PortAddr:word): byte; 
{$IFDEF WIN32} 
assembler; stdcall; 
asm 
mov dx,PortAddr
in al,dx 
end; 
{$ELSE} 
begin 
Result := Port[PortAddr]; 
end; 
{$ENDIF}

procedure OutPort(PortAddr: 
word; Databyte: byte); 
{$IFDEF WIN32} 
assembler; stdcall; 
asm
mov al,Databyte 
mov dx,PortAddr 
out dx,al 
end; 
{$ELSE}
begin 
Port[PortAddr] := DataByte; 
end; 
{$ENDIF}



{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
e:word;
port,base,data:word;

begin
base:=$3F8;
port:=base+4;
data:=2;
outport(port,data);
sleep(10);
port:=base+6;
e:=inport(port) and 16;
port:=base+4;
data:=0;
outport(port,data);
end;

end.
e:=inport(port) and 16; прочитал единицу из CTS как это увидеть на экране?

на паскале для опроса 3 кнопок 25 строк
здесь за полсотню ради 1 кнопки -- чем же проще дельфи?
(\_(\
(=' :') радиоКотЭ
(,('')('')
Реклама
Друг Кота
Сообщения: 6282
Зарегистрирован: Чт май 13, 2010 23:42:03
Откуда: Минск

Сообщение Murlock »

причина: WIN32.
зато какие там можно делать графики/диаграммы!. пара движений мышью, и готово.
" Если на небе есть ангелы, то, их небесное воинство построено на принципах мафии"
У.Н. Румфорд.
----------------------------------------
http://www.youtube.com/watch?v=qWfIYU9Zzs4 А.К. "Легион"
Реклама
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

FRIM@N писал(а): e:=inport(port) and 16; прочитал единицу из CTS как это увидеть на экране?
Как угодно - вызвать ShowMessage, вывести в Edit или Label. Сонм вариантов.
Знание - сила!
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2409
Зарегистрирован: Ср дек 03, 2008 21:00:19

Сообщение FRIM@N »

Пухич попробовал все перечисленное ничего не вышло

var e: String;
begin
Edit1.Text:=присваиваем текст;
e:=Edit1.Text;
end;
(\_(\
(=' :') радиоКотЭ
(,('')('')
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 6282
Зарегистрирован: Чт май 13, 2010 23:42:03
Откуда: Минск

Сообщение Murlock »

не так.
Edit1.Text:=присваиваем текст;
надо:
Edit1.Text:='присваиваем текст';
" Если на небе есть ангелы, то, их небесное воинство построено на принципах мафии"
У.Н. Румфорд.
----------------------------------------
http://www.youtube.com/watch?v=qWfIYU9Zzs4 А.К. "Легион"
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2409
Зарегистрирован: Ср дек 03, 2008 21:00:19

Сообщение FRIM@N »

не меняет картины
(\_(\
(=' :') радиоКотЭ
(,('')('')
Реклама
Друг Кота
Сообщения: 6282
Зарегистрирован: Чт май 13, 2010 23:42:03
Откуда: Минск

Сообщение Murlock »

А Edit1 предварительно добавлен в форму?
" Если на небе есть ангелы, то, их небесное воинство построено на принципах мафии"
У.Н. Румфорд.
----------------------------------------
http://www.youtube.com/watch?v=qWfIYU9Zzs4 А.К. "Легион"
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2409
Зарегистрирован: Ср дек 03, 2008 21:00:19

Сообщение FRIM@N »

в какую форму? вы говорите на другом языке,говорите полными предложениями
(\_(\
(=' :') радиоКотЭ
(,('')('')
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

Ну елки, Фриман, чтобы можно было присвоить свойству объекта значение, надо его создать. Самый простой способ - кинуть на форму ("окно программы") элемент типа TEdit.
Знание - сила!
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2409
Зарегистрирован: Ср дек 03, 2008 21:00:19

Сообщение FRIM@N »

елки не елки и здесь может уместна басня про мартыщку и очки , но я не понимаю.подчеркивает var e: String;

там во вложении код паскаля , графика, быстро быстро выводитдосовское окно в нем текст рассмотреть нет возможности.слишком быстро выводит и выбрасывает обратно в редактирование


begin
base:=$3F8;
port:=base+4;
data:=2;
outport(port,data);
sleep(10);
port:=base+6;
e:=inport(port) and 16;
port:=base+4;
data:=0;
end;
procedure TForm1.edt1Change(Sender: TObject);
begin
var e: String;
begin
Edit1.Text:="присваиваем текст";
e:=Edit1.Text;
end.
Вложения
2010-12-23_234404.jpg
(55.65 КБ) 327 скачиваний
(\_(\
(=' :') радиоКотЭ
(,('')('')
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

FRIM@N писал(а): там во вложении код паскаля , графика, быстро быстро выводитдосовское окно в нем текст рассмотреть нет возможности.слишком быстро выводит и выбрасывает обратно в редактирование
Ессна. Вставь ожидание Ридлайном.
но я не понимаю.подчеркивает var e: String;
А почему Бегин перед Вар?
Знание - сила!
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2409
Зарегистрирован: Ср дек 03, 2008 21:00:19

Сообщение FRIM@N »

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

Код: Выделить всё

procedure TForm1.edt1Change(Sender: TObject);
var e: String;
begin
  Edit1.Text:='БУГАГА';
  e:=Edit1.Text;
end;
процедура я так понял начинает любое действие

вар описывает переменные

и меня терзают смутные сомния что эти 2 строки нужно поменять местами

Edit1.Text:='БУГАГА';
e:=Edit1.Text;

потому что сначала Edit1.Text присваивается текст
а потом
оно присваиваетсч переменной

в любом случае выделяет

первую строку после бегин
(\_(\
(=' :') радиоКотЭ
(,('')('')
Друг Кота
Сообщения: 6282
Зарегистрирован: Чт май 13, 2010 23:42:03
Откуда: Минск

Сообщение Murlock »

FRIM@N писал(а):Edit1.Text:='БУГАГА';
e:=Edit1.Text;
Проверьте, может вместо
Edit1 нужно писать Edt1, поскольку процедура называется edt1Change
" Если на небе есть ангелы, то, их небесное воинство построено на принципах мафии"
У.Н. Румфорд.
----------------------------------------
http://www.youtube.com/watch?v=qWfIYU9Zzs4 А.К. "Легион"
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2409
Зарегистрирован: Ср дек 03, 2008 21:00:19

Сообщение FRIM@N »

он тогда в таймер упирается,
procedure TForm1.tmr1Timer(Sender: TObject);
в форме он присутствует

кстати если цикл тайм будет выполнятся постоянно он же не перейдет к дальнейшим действия -или перейдет7
(\_(\
(=' :') радиоКотЭ
(,('')('')
Друг Кота
Сообщения: 6282
Зарегистрирован: Чт май 13, 2010 23:42:03
Откуда: Минск

Сообщение Murlock »

у нас несколько разные дельфи. они по-разному называют объекты и процедуры по умолчанию. правильное название объекта можно подсмотреть в ячейке name инспектора объектов. это ключевое поле.
" Если на небе есть ангелы, то, их небесное воинство построено на принципах мафии"
У.Н. Румфорд.
----------------------------------------
http://www.youtube.com/watch?v=qWfIYU9Zzs4 А.К. "Легион"
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Murlock писал(а):у нас несколько разные дельфи. они по-разному называют объекты и процедуры по умолчанию.
Скорее всего просто в одном месте случайно буква i затерлась, в каком можно понять когда при компиляции ошибка вылезет.

Кстати, во время выполнения строки "out dx,al" ошибка "Priveleged instruction" не вылезает?
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2409
Зарегистрирован: Ср дек 03, 2008 21:00:19

Сообщение FRIM@N »

у нас несколько разные дельфи. они по-разному называют объекты и процедуры по умолчанию. правильное название объекта можно подсмотреть в ячейке name инспектора объектов. это ключевое поле.
насчет эдит вы были правы,но тайм правильно назван

Engineer_Keen
Вложения
2010-12-24_155327.jpg
(19.61 КБ) 218 скачиваний
Последний раз редактировалось FRIM@N Пт дек 24, 2010 15:57:37, всего редактировалось 1 раз.
(\_(\
(=' :') радиоКотЭ
(,('')('')
Друг Кота
Сообщения: 6282
Зарегистрирован: Чт май 13, 2010 23:42:03
Откуда: Минск

Сообщение Murlock »

Engineer_Keen писал(а):Кстати, во время выполнения строки "out dx,al" ошибка "Priveleged instruction" не вылезает?
будет вылазить. скорее всего процедуры inport и outport - внешние и включены в драйвер работы с портами, или в какую нибудь сопутствующую dll. надо читать документацию.
FRIM@N писал(а):он тогда в таймер упирается,
procedure TForm1.tmr1Timer(Sender: TObject);
в форме он присутствует

кстати если цикл тайм будет выполнятся постоянно он же не перейдет к дальнейшим действия -или перейдет7
это взято из определения объекта. какое написание верное?
procedure Timer1Timer(Sender: TObject);
"дальнейшие действия" могут выполняться параллельно и независимо.
Последний раз редактировалось Murlock Пт дек 24, 2010 16:02:02, всего редактировалось 1 раз.
" Если на небе есть ангелы, то, их небесное воинство построено на принципах мафии"
У.Н. Румфорд.
----------------------------------------
http://www.youtube.com/watch?v=qWfIYU9Zzs4 А.К. "Легион"
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2409
Зарегистрирован: Ср дек 03, 2008 21:00:19

Сообщение FRIM@N »

та статья откуда я все почерпнул

в поле name стоит tmr1
Вложения
Работа с портами.doc
(175.5 КБ) 888 скачиваний
(\_(\
(=' :') радиоКотЭ
(,('')('')
Друг Кота
Сообщения: 6282
Зарегистрирован: Чт май 13, 2010 23:42:03
Откуда: Минск

Сообщение Murlock »

такая работа под WXP невозможна.
а что находится на самом верху в описании class ?
" Если на небе есть ангелы, то, их небесное воинство построено на принципах мафии"
У.Н. Румфорд.
----------------------------------------
http://www.youtube.com/watch?v=qWfIYU9Zzs4 А.К. "Легион"
Ответить

Вернуться в «Интеграция с ПК»