[Turbo pascal] lpt poort aansturen*

Pagina: 1
Acties:
  • 84 views sinds 30-01-2008

  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
Ik probeer een progje te schrijven in Turbo Pascal, die op de printer poort ledjes laad branden na elkaar. Op de printerpoort is de CenSim aangesloten, dat is een printplaat die wij op school hebben moeten maken TL eindhoven.

maar volgens mij gebruik ik het vekeerder adres ofzo, want het werkt totaal niet.


program leds;

uses crt;
const leds = $0;
control = $378;
start = $01;

var patroon : byte;

begin
clrscr;
port [control+$402] :=$35;
port [control+$2] :=$20;
patroon :=start;
repeat
port[leds] := patroon;
gotoxy (35,10);
writeln (patroon:3, ' stoppen : druk willekeurige toets');

if patroon = $80 then patroon := $01 else patroon := patroon shl 1;

delay (200);
until keypressed;

end.

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Het werkt niet.... Ook hier geldt: m'n glazen bol is kapot, en ik heb geen nieuwe gekregen met Kerst.
Lees dus ff de Quickstart:
Welkom in P&W -> Quickstart (update 2/10/2002)

Tip: gebruik ook code-tags om je code in te zetten.
Zeg wat er niet werkt, wat je geprobeerd hebt, heb je al eens gedebugged, etc....

[ Voor 17% gewijzigd door whoami op 02-01-2003 15:35 ]

https://fgheysels.github.io/


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
Nou, op het scherm laat hij zien welke waardes hij naar de poort stuurt, hij telt netjes op, maar op de printerpoort komen geen signalen binnen. Ik heb verschillende poorten geprobeerd. Ik neem aan dat bij control= $378 goed is, want dat is de printerpoort.

Ik zit vast. Heb allerlij mogelijk heden geprobeerd, maar op de printerpoort komen geen signalen binnen. Dus heb ik hoogst waarschijnlijk de verkeerde poort, maar welke moet het dan zijn.

  • Lorn
  • Registratie: Maart 2000
  • Laatst online: 13-01-2025

Lorn

I have a bad feeling...

Welk OS gebruik je? Onder NT/2K/XP kun je niet zomaar de LPT poort aanspreken, alleen onder de 9x varianten zal je dat gaan lukken.

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 17:59

Knutselsmurf

LED's make things better

Je probeert te schrijven naar port [0].

Poort $378 is je datapoort, $379 je statuspoort en $37A je controlpoort.

- This line is intentionally left blank -


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
Ik gebruik MS-dos en windows 95. Verder is er niks anders geinstalleerd op de computer.
Het lukt met wel als ik debug opstart, en daar mee de waardes

-o37a 4
-o378 ff "laat alle ledjes branden
-o378 00 "zet alle ledjes uit.

en alle waardes tussen ff en 00 laat een ander ledje branden

  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
dus ik moet schrijven naar poort $378 en daar de waardes naar toe sturen voor iedere ledje ?

  • PieterJ
  • Registratie: Juli 2000
  • Laatst online: 21-08 09:35
voodoo202 schreef op 02 januari 2003 @ 15:33:
Ik probeer een progje te schrijven in Turbo Pascal, die op de printer poort ledjes laad branden na elkaar. Op de printerpoort is de CenSim aangesloten, dat is een printplaat die wij op school hebben moeten maken TL eindhoven.

maar volgens mij gebruik ik het vekeerder adres ofzo, want het werkt totaal niet.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program leds;

uses crt;
const leds        = $0; 
      control     = $378;
      start       = $01;

var patroon : byte;

begin
  clrscr;
  port [control+$402] :=$35;
  port [control+$2]   :=$20;
  patroon :=start;
  repeat
    port[leds] := patroon;
    gotoxy (35,10);
    writeln (patroon:3, ' stoppen : druk willekeurige toets');

    if patroon = $80 then patroon := $01 else patroon := patroon shl 1;

    delay (200);
until keypressed;

end.


code:
1
2
3
const leds        = $0; 

port[leds] := patroon;


PORT[0] := patroon;

Ik denk dat dit fout gaat.

EDIT: dat had je zelf ook al gevonden :)
EDIT2: En lezen dat knutselsmurf dat ook al had gezegd |:(

[ Voor 7% gewijzigd door PieterJ op 02-01-2003 16:21 ]


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
code:
--------------------------------------------------------------------------------
const leds = $0;

port[leds] := patroon;

--------------------------------------------------------------------------------

port[leds] heb ik verandert naar $378 maar nog steeds geen resultaat, Ik zat te denken aan de eerste regels volgens mij maak ik daar ergens een fout.

code:
--------------------------------------------------------------------------------

port [control+$402] :=$35;
port [control+$2] :=$20;
--------------------------------------------------------------------------------

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 01:25

Tomatoman

Fulltime prutser

No offence, maar als ik dit zo lees, krijg ik de indruk dat je niet echt begrijpt wat je aan het doen bent. Voordat je in het wilde weg aan het proberen gaat, zul je wat studie moeten doen. Bovendien proberen andere posters je op weg te helpen, maar als je hun vragen negeert (welk besturingssysteem gebruik je nou?), kunnen ze je ook niet verder helpen.

Misschien de Quickstart toch maar lezen? Aan het stukje over code tags ben je zo te zien nog niet toegekomen ;).

Een goede grap mag vrienden kosten.


  • Cpt.Morgan
  • Registratie: Februari 2001
  • Laatst online: 23-11-2025
Dit vond ik op internet:

code:
1
2
3
4
5
6
7
Const Data    = $378;
      Status  = Data + 1;
      Control = Data + 2;

var Bits: Byte;

Port[Data] := Bits;  { output data }

En dat combineer je dan met:

Port[Data] := $FF;

dus test eerst deze code eens:

code:
1
2
3
4
5
6
7
8
9
10
Const Data    = $378;
      Status  = Data + 1;
      Control = Data + 2;

begin
Port[Control] := $4;
Port[Data] := $FF;
readln;
Port[Data] := $0;
end.


Test eens of het zo werkt, zonder alle fancy dingetjes erbij... dit is precies wat je ook in debug doet...

[ Voor 45% gewijzigd door Cpt.Morgan op 02-01-2003 17:12 ]


  • voodoo202
  • Registratie: Januari 2002
  • Laatst online: 04-08-2025
Ja het werkt, zal nu proberen om het verder af te maken. Bedankt


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
uses crt;

const data         = $378;  {poort nummer van de LPT poort}
      status       = data + 1;  {poort nummer + 1}
      control      = data + 2;
      start        = $01;   {eerste ledje}

var patroon : byte;

begin
clrscr;
port[control] := $4;        {de control port wordt $4}
patroon := start;       {starten van de teller}

repeat
  port[data] := patroon;    {waarde sturen naar de lpt poort}
  gotoxy (35,10);
  writeln (patroon:3, '         stoppen: druk willekeurig toets');

  if patroon = $80 Then patroon := $01 else patroon := patroon shl 1;

  delay (200);
until keypressed;
port[data] := $00;      {bij afsluiten de ledjes uitzetten}

end.

[ Voor 95% gewijzigd door voodoo202 op 02-01-2003 18:35 . Reden: code toegevoegd ]


Verwijderd

Wat is het maximum aan te sluiten ledjes??
En is dit ook mogelijk via de USB of com poort??? >:)

  • Bigs
  • Registratie: Mei 2000
  • Niet online
ROC Eindhoven? :)

  • Schmoove
  • Registratie: Juli 2001
  • Laatst online: 20-08 11:58
tomatoman schreef op 02 January 2003 @ 16:52:
No offence, maar als ik dit zo lees, krijg ik de indruk dat je niet echt begrijpt wat je aan het doen bent. Voordat je in het wilde weg aan het proberen gaat, zul je wat studie moeten doen. Bovendien proberen andere posters je op weg te helpen, maar als je hun vragen negeert (welk besturingssysteem gebruik je nou?), kunnen ze je ook niet verder helpen.

Misschien de Quickstart toch maar lezen? Aan het stukje over code tags ben je zo te zien nog niet toegekomen ;).
Hij had al vertelt dat ie MS-DOS en Windows 95 gebruikte :), wel lezen he ;)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

gotties : Beetje nutteloze kick in een half jaar oud topic niet?

Iets zegt mij dat je niet begrepen hebt waar dit hele topic over gaat. Com (serieel) en zeker USB werken heel anders dan LPT(paralel)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.