iver89 Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 Skulle gjerne ha laget et program som f.eks satte pinne 2 på parallel porten høy/lav. Når programmet blir kjørt, setter det pinne 2 til det motsatte av det pinne 2 er i øyeblikket. Om pinne 2 er lav når jeg starter programmet, blir den satt høy, og omvent. Gjerne i Pascal. Noen som kan hjelpe? Lenke til kommentar
tasle Skrevet 23. oktober 2003 Del Skrevet 23. oktober 2003 Det skulle vel la seg gjøre, om du forteller hvilket miljø du bruker. DOS er enkelt, Delphi 1 og 16-bits Windows likedan, men ganske mer krevende ellers for Win-32.... Lenke til kommentar
iver89 Skrevet 23. oktober 2003 Forfatter Del Skrevet 23. oktober 2003 DOS er greit det. Prøvde meg litt med QBasic, og fikk frem noen resultater, men da måtte jeg taste inn et tresifret tall som innehold informasjon om hva alle pinnen var (høy/lav), noe som kanskje blir litt strevsomt. Lenke til kommentar
tasle Skrevet 24. oktober 2003 Del Skrevet 24. oktober 2003 Prøv eksempelvis noe a la dette: Program LPT; Uses Dos; Var Adresse:word; Data:byte; Feil:integer; Begin Adresse:= MemW [$0040:$0008]; Val (ParamStr (1), Data, Feil); Port [Adresse]:= Data; End. Lag en exe-fil i Turbo Pascal og bruk det på denne måten: LPT 8 Det setter datapinne 5 høy. Verdiene for datapinnene er : 2 3 4 5 6 7 8 9 (pinnenr i 25-pinns kontakt) 1 2 4 8 16 32 64 128 (verdi for hver datapinne) Lenke til kommentar
iver89 Skrevet 24. oktober 2003 Forfatter Del Skrevet 24. oktober 2003 hvordan kan jeg styre pinnene ved å bruke binærtall? altså å sende 255 som 11111111, og 0 som 00000000? Lenke til kommentar
tasle Skrevet 24. oktober 2003 Del Skrevet 24. oktober 2003 Du kan legge inn en funksjon i programmet ditt som konverterer fra binære til desimale tall, noe sånt: Function BinTilHeltall (Verdi: String): Longint; Var Heltall, I : Integer; Begin Heltall:= 0; { Fjern evn. innledende nuller : } While Copy (Verdi, 1, 1) = '0' Do Verdi:= Copy (Verdi, 2, Length (Verdi) - 1); { Konvertering : } For I:= Length (Verdi) Downto 1 Do If Copy (Verdi, I, 1) = '1' Then Heltall:= Heltall + (1 Shl (I - 1)); BinTilHeltall:= Heltall; End; Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå