Forum: Mikrocontroller und Digitale Elektronik Metex und Pascal


von Richard W. (thunderstorm)


Lesenswert?

Servus,

ich habe ein Metex ME-31, dass man an die RS232 anschliessen kann.
wenn man dem Messgrät ein "D" sendet, sendet es den wert auf dem
Display mi klartext zurück. Soweit einfach. In Basic funktioniert auch
alles.

Meine Frage: Wie kann ich in (Turbo-)Pascal die Serielle schnittstelle
ansprechen, um ASCII-Zeichen zu senden und zu empfangen?

Hat in die Richtung jemand erfahrung??

Danke schonmal, und allen ein schönes Wochenende.

mfg. Richard

von Rahul D. (rahul)


Lesenswert?

Unter DOS kann man mit Pascal direkt die Register der seriellen
Schnittstelle ansprechen. Sonst gab es da noch den INT21 (oder so
ähnlich).

von Richard W. (thunderstorm)


Lesenswert?

Servus,

ich müsste wie mit einem Terminal-Programm einen Text senden und
empfangen können.
hat da jemand informationen????

von Axel R. (Gast)


Lesenswert?

wirklich unter DOS?
Wenn Du Pascal kannst, magst Du Dich nicht mit Delphi anfreunden?
Dafür kann ich Dir was geben - unter DOS ging das natürlich auch, da
habe ich aber nichts mehr. mit PORT[yxz]:= konnte man direkt die Status
und ControlRegister der UART ansprechen (fast wie beim AVR), aber das
finde ich nicht mehr... Dann noch den Interrupt auf den eigenen
Interrupthandler biegen, irgentwie so war das.

Gruß AxelR.

von Richard W. (thunderstorm)


Lesenswert?

Servus,

so ein absolutes programmier-genie bin ich nicht.
ideal wäre es, wenn ich es so einfach wie in Basic ansteuern könnte.

Delphi geht nicht, weil ich dann mein ganzes Programm umschreiben
müsste (die Metex-Abfrage soll eine Funktion eines großen Programmes
werden) der Quellcode ist schon über 60 seiten lang....

Aber ich werde mich mal informieren, wo ich Delphi herbekommen kann,
und ob ich das auch kann :-)

Danke!

von Reinhold B. (ebill)


Lesenswert?

Ich bin auch kein Programmierexperte, hier
http://users.etech.fh-hamburg.de/users/GELab/DownLoad/metrawin_ba.pdf
gibt es Hinweise zum Ansprechen der seriellen Schnittstellen unter
Basic und C für Metrahit DMM. Vermutlich kann man auch entsprechende
Anpassungen für andere Geräte vornehmen. Falls Interesse besteht,
könnte ich die Dateien MEXB.BAS
und MEXC.C schicken. Der Device-Treiber MC1DOS.SYS wird nichts nutzen,
da er speziel für Matrahit ausgelegt ist.

eBill

von Richard W. (thunderstorm)


Lesenswert?

Servus,

das ist eine Spur teuerer als mein Metex.... ;-)
Pascal und Delphi sind interessant. Ich schrieb ... SO EINFACH wie...
wie man das messgerät in Basic ansteuert weiß ich, aber mehr auch
nicht... von pascal habe ich mehr ahnung :-)

von Rahul D. (rahul)


Lesenswert?

In Basic kann man die serielle Schnittstelle als Datei öffnen...
Sonst gibt es unter VB das MSComm-Objekt.
Das MSComm-Objekt wird im MSDN hinreichend erklärt...

von lui (Gast)


Lesenswert?

Welches Zielsystem benutzt du überhaupt?
Eigentlich kannst du unter jedem System -aussser DOS- mit jeder
'normalen' Sprache die COM-Schnittstelle als Datei ansprechen.
z.B. unter Win32 Createfile("COM1",....)/ReadFile/CloseFile
Funktioniert auch mit Turbo-Pascal ergibt aber 16-Bit Code.
Wenn du auf der Suche nach einem 32-Bit Pascal Compiler/IDE bist würde
ich Freepascal(evtl.+ Lazarus )oder GNU-Pascal(nur Compiler) nicht
vergessen

von don hendi (dg3hda) (Gast)


Lesenswert?

google nach "comm.tpu" :-)

von Richard W. (thunderstorm)


Lesenswert?

Servus,
Als Compiler und IDE habe ich DEVpascal, und der macht auch
32bit-Code.
Ich schrieb Turbo-Pascal, weil es da in der Regel mehr Infos gibt.

@lui kannst du mir das mit Createfile/Readfile erklären?
Das könnte die gesuchte Nadel im Heuhaufen sein :-)

von Rahul D. (rahul)


Lesenswert?

Vielleicht hilft dir der Link hier (hab ihn nicht getestet:

ftp://ftp.borland.com/pub/delphi/techpubs/delphi2/win32.zip

den hab ich von hier:
http://www.freepascal.org/docs.html

von lui (Gast)


Angehängte Dateien:

Lesenswert?

Die WinApi Hilfedatei war sogar schon bei Turbo-Pascal (7?) dabei, sogar
auf Deutsch, allerdings für win 3.1. Es hat sich aber nicht soviel getan
ausser das ein Handle jetzt 32-Bit lang aber das macht der Compiler
....

So mal abgesehen von kleinen Flüchtigkeitsfehlern sollte das klappen
(evtl. nach writefile mit sleep(200) etwas warten)
(Anhang)
Falls du nicht mit Null-Terminierten Strings umgehen magst musst du
einfach nur ein Zeichen einlesen (z.B. maxbuf=1 und immer
eingabebuffer[0] auswerten)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.