Avatar billede megabyte_ Nybegynder
22. oktober 2001 - 12:39 Der er 11 kommentarer og
1 løsning

bruge af lpt1

Hey
Jeg skal til og lave et prog til et stykke hardware en af mine venner har lavet.

og jeg skal bruge en måde hvor jeg kan bestemme hvilken ben der er åben på min lpt1 port
fx ben 1-10 skal være åben hele tiden osv

/MB
Avatar billede martinlind Nybegynder
22. oktober 2001 - 12:44 #1
Du skal nok starte med at finde standarten for en LPT port, der er nogle handshake ben og nogle data ben, som du ikke kan komme uden om, du er nød til at følge dem hvis du skal være sikker på det virker på alle lpt porte
Avatar billede makse Nybegynder
22. oktober 2001 - 13:37 #2
Avatar billede speedy Nybegynder
22. oktober 2001 - 18:24 #3
Jeg har noget kode, som kan tænde og slukke for de 8 databen der er på parallelporten...

procedure Out32(PortAdresse:smallint;PortVaerdi:smallint);stdcall;export;
var
  ByteVaerdi: Byte;
begin
  ByteVaerdi:=Byte(PortVaerdi);
  asm
    push dx                      //bevarer indholdet af dx-register
    mov dx,PortAdresse            //skriver ByteVaerdi til PortAdress
    mov al,ByteVaerdi
    out dx,al
    pop dx                        //gendanner indholdet af dx-register
  end;
end;


procedure BinToParallel(bin: String);
var
  tmpByte: Byte;
  I: Integer;
begin
  for I := length(bin) downto 1 do
    if bin[I] = \' \' then
      Delete(bin, I, 1);

  tmpByte := (StrToIntDef(bin[1], 0) * 1) +
            (StrToIntDef(bin[2], 0) * 2) +
            (StrToIntDef(bin[3], 0) * 4) +
            (StrToIntDef(bin[4], 0) * 8) +
            (StrToIntDef(bin[5], 0) * 16) +
            (StrToIntDef(bin[6], 0) * 32) +
            (StrToIntDef(bin[7], 0) * 64) +
            (StrToIntDef(bin[8], 0) * 128);
  Out32($0378,tmpByte)
end;

Det bruges ved at kalde proceduren

BinToParallel(\'00000000\');

Den slukker alle de 8 databen, og

BinToParallel(\'01010101\');

Den tænder hver anden som du nok kan gætte :)

/SpEeDy
Avatar billede megabyte_ Nybegynder
23. oktober 2001 - 14:02 #4
SpEeDy

Jeg får en fejl når jeg prøver at bruge BinToParallel den brokker sig over Out32($0378,tmpByte)
så vidt jeg kan se har noge tnoget med min adresering af porten at gøre men har ikek lige så meget ide om hvordan det skal løses :)

/MB
Avatar billede martinlind Nybegynder
23. oktober 2001 - 14:21 #5
Avatar billede speedy Nybegynder
23. oktober 2001 - 18:48 #6
megabyte>>Får du kompileringsfejl, eller er det først når programmet kører du får en fejl ?
Og hvad lyder fejlen på ?
Avatar billede speedy Nybegynder
23. oktober 2001 - 18:49 #7
forresten virker mit kode ikke på Win NT/2000/XP

Det er kun win9x det kan køre på..Ellers skal du kigge på martinlinds link hvis det skal køre i NT/2000/XP

/SpEeDy
Avatar billede atox Nybegynder
05. november 2001 - 22:08 #8
>>>megabyte_<<<  Jeg har lavet et prøgram i Delphi som der kan det som du vil have det til, også vi win 2000 og Xp... kan maile det til dig hvis du vil...
Avatar billede megabyte_ Nybegynder
06. november 2001 - 09:28 #9
>atrox
Det må du meget gerne eller bare den del af koden der gøre det :) men oxo meget gerne et eks på hvordan det virker.

her er min mail lige MegaByte@it-College.dk :)

/MB
Avatar billede delphi Nybegynder
06. november 2001 - 10:45 #10
Eksperten fungerer efter princippet at en person stiller et spørgsmål og der er derefter en masse andre der kan se svaret.  I det lys vil det være mest rimeligt at svaret, dvs. kode stumpen, offentliggøres her.

Peter
Avatar billede atox Nybegynder
06. november 2001 - 19:04 #11
Mailer det til dig i aften...

Med coderne og plug-ins...
ATox
Avatar billede megabyte_ Nybegynder
15. februar 2003 - 16:48 #12
Dødt spm håber at det kommer op en anden gang.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester