Uses Crt,Graph,Windows,Maus,Konstant,ADDAUnit,Diagramm,ADDAModul;{
浜様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様融
T E C H N I S C H E U N I V E R S I T T C H E M N I T Z
Programm zur Ansteuerung des AD/DA-Wandlermoduls mit Einchip-
rechner 68HC11
HAUPTPROGRAMM
Programmierer: Torsten Levin
03 AET 89
TU Chemnitz-Zwickau
Chemnitz, Januar-April 1993
麺様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様郵
Zugehrige Dateien:
AD_DA.PAS Hauptprogramm
WINDOWS.PAS Unit, beinhaltet die gesamte Benutzeroberflche
ADDAUNIT.PAS Unit, beinhaltet programmspezifische Funktionen
ADDAMODU.PAS Unit, beinhaltet AD/DA-Modul-Funktionen
DIAGRAMM.PAS Unit, beinhaltet alle Funktionen zum Kurven- und
Diagramm zeichnen
KONSTANT.PAS Unit, beinhaltet viele Voreinstellungen und Verein-
barungen
MAUS.PAS Unit, beinhaltet alle Mausroutienen
PRINT.PAS Unit, beinhaltet die Druckroutienen
LW_TEST.PAS Unit, beinhaltet Test, welche Laufwerke existieren
BSS.PAS Unit, beinhaltet den Bildschirmschoner
IMAGE.PAS Unit, beinhaltet die Laderoutienen fr Bilder
*.REC Programmdateien fr das AD/DA-Wandlermodul
*.PIC Bilddateien, erstellt mit dem IMAGE-EDITOR (c)
藩様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様夕
}
{$M 10240,0,230400} { 10 KByte Stack, 225 KByte Heap }
label vorn;
Var
Name: String;
KanalNum : Integer;
SStellWord : Word;
f: File;
{---Hauptprogramm----------------------------------------------------}
Begin
{ Zeichnen des Hauptfensters }
InitWerte; { Initialisierung von Standardwerten }
ScreenInit;
InitModul; { Initialisierung des AD/DA-Moduls }
Repeat { Pull-Down-Men zeichnen und Abfrage }
vorn:
case MenuInput(Mainmenu) of
$101: { F Laden einer Kurve } Begin
if Dateifenster('*.WAV','Kurve laden',True,150,120,Name)
and LoadDatei2(Name)
Then MaleKurve;
End;
$102: { F Sichern einer Kurve } Begin
for KanalNum:=1 to 4 do if KanalUsed[KanalNum-1] then break;
case KanalUsage of
0: begin
Fehler(200,100,false,'Keine Kurve ist','aktiv und damit','speicherbar.','');
goto vorn;
end;
1: ;
else Repeat
if not Auswahl(200,80,'Sichern einer Kurve',Kanaldaten,KanalNum)
then goto vorn;
If KanalUsed[KanalNum-1] Then break;
Fehler(200,100,False,'Diese Kurve ist','zur Zeit inaktiv.',
'Eine Speicherung','wre sinnlos.');
Until false;
end{case};
if Dateifenster('*.WAV','Kurve sichern',False,150,120,Name)
and SaveDatei(Name,Kanalnum-1) then;
End;
$103: { F Drucken } Begin
DruckeBildschirm;
End;
$104: { F DOS-Shell } Begin
Dosshell('AD/DA-Wandlermodul Version 3.21');
ScreenInit;
End;
$105: { F ber... } Copyright('AD/DA-Wandlermodul','3.21','2003',
'TU Chemnitz (h#s)');
$106: { F Programm-Ende }
if Sicherheitsfenster(200,150,'Wollen Sie das',
'Programm wirklich','verlassen?') then break;
$201: { ADU Betriebsart } Begin
if Betriebsart Then OutStatusfenster;
End;
$202: { ADU Start } ADUmsetzung;
$203: { ADU Direktbetrieb } DirektAD;
$301: { DAU Start } Begin
for KanalNum:=1 to 4 do if KanalUsed[KanalNum-1] then break;
case KanalUsage of
0: begin
Fehler(200,100,false,'Keine Kurve ist','aktiv und damit','ausgebbar.','');
goto vorn;
end;
1: ;
else Repeat
if not Auswahl(200,80,'DA-Umsetzung einer Kurve',Kanaldaten,KanalNum)
then goto vorn;
If KanalUsed[KanalNum-1] Then break;
Fehler(200,100,False,'Diese Kurve ist','zur Zeit inaktiv.',
'Eine Umsetzung','wre sinnlos.');
Until false;
end{case};
DAUmsetzung(Kanalnum-1);
End;
$302: { DAU Direktbetrieb } DirektDA;
$401: { HW Sttzstellen }
if FreiAuswahl(150,70,'Sttzstellenzahl',True,Daten.SStellen)
and SStellenEinstellen(Round(Daten.SStellen))
then OutstatusFenster;
$402: { HW Umsetzrate }
if FreiAuswahl(150,100,'Umsetzrate',False,Daten.Urate)
and UrateEinstellen(Daten.Urate)
Then Begin
OutstatusFenster;
MaleKurve;
OutXachse;
End;
$403: { HW Modul initialisieren } InitModul;
$501: { BD Datendarstellung } Begin
if Auswahl(200,100,'Kurvendarstellung',BildDaten,Daten.BildDatennr)
Then Begin
MaleKurve;
OutXAchse;
End;
End;
$502: { BD Skalierung } YSkalierung;
$503: { BD Y-Zoom } XZoom;
$504: { BD Kanal Lschen } Begin
KanalNum:=1;
if not Auswahl(200,80,'Lschen einer Kurve',KanaldatenA,KanalNum)
then goto vorn;
case KanalNum of
1..4: If KanalUsed[KanalNum-1]
and Sicherheitsfenster(200,150,'Wollen Sie die',
'Kurve '+Chr(Kanalnum+47)+' wirklich','lschen?')
Then Begin
KanalUsed[KanalNum-1]:=False;
MaleKurve;
OutXAchse;
End;
5: If Sicherheitsfenster(200,150,'Sollen wirklich',
'alle Kurven ge-','lscht werden?') Then Begin
FillChar(KanalUsed,sizeof(KanalUsed),false);
MaleKurve;
OutXAchse;
End;
End;
End;
$601: { O Farbwahl } If Farbwahl(150,100) Then ScreenInit;
$602: { O BSS } BSSMenue;
$603: { O Optionen Sichern } Begin
status(250,100,'Die Einstellungen','werden in der','Datei AD_DA.INI','gesichert.');
assign(f,'AD_DA.INI');
{$I-}
rewrite(f,1);
If Dateifehler(200,150,ioresult) Then Begin
BlockWrite(f,Daten,sizeof(daten));
close(f);
{$I+}
If not Dateifehler(200,150,ioresult) Then erase(f);
End;
CloseStatus;
End;
end;
Until false;
Closegraph; { Programmende }
TextColor(7);
TextBackground(0);
ClrScr;
End.
Vorgefundene Kodierung: UTF-8 | 0
|