Article View: be.comp.programming
Article #15797Re: Statusport byte naar bits converteren.
From: RedX
Date: Thu, 17 Aug 2000 00:00
Date: Thu, 17 Aug 2000 00:00
41 lines
2437 bytes
2437 bytes
'K zal dat eens proberen. maar ik denk niet dat dit hiervoor gaat werken. De statusport geeft een rare byte. RedX Jan Van den Bergh <janv@cs.kuleuven.ac.be> schreef in berichtnieuws 966495179.238356@marvin... > In article <8nekll$iv2$1@news.planetinternet.be>, "RedX" > <RedX@mail.dma.be> wrote: > > Ik zit al een tijd met dit probleem. ik lees een byte in van de > > Statuspoort van LPT1 ( C: byte = inp(poortadres); Pascal: byte := > > port[poortadres];) > > maar deze heeft andere waarden dan een byte ingelezen van een andere > > poort: > > Er worden maar 5 bits gebruikt: 8,16,32,64 en 128. bits 8,16,32 en 64 > > zijn geinverteerd: ze hebben een waarde van -8, -16, -32 en -64. bit 128 > > is normaal. daarbij wordt er ook nog 127 bij de waarde van de byte > > geteld. Tot nu toe heb ik alle de 4 geinverteerde bits kunnen "losmaken" > > van de byte. als ik de 5de probeer geeft dit verkeerde resultaten. Het > > algoritme dat ik hiervoor gebruik is: (in pseudo-code) > > > > lees BYTE BYTE - 127 absolute waarde van BYTE BIT1 = (BYTE en 8) / 8 > > BIT2 = (BYTE en 16) / 16 BIT3 = (BYTE en 32) / 32 BIT4 = (BYTE en 64) / > > 64 BIT5 = (BYTE en 128) / 128 > > > > Dit werkt correct maar als ik een bit5 een 1 zou krijgen, geeft dit > > verkeerde waarden. Weet iemand een betere manier hiervoor? Op deze > > manier kan ik maar 4 bits invoer gebruiken op LPT1. > > Een goede manier om te kijken of een bit 1 is, is (in C): > > bit = (byte & (1 << bitnr)) != 0; > > Als je wil weten of de bit 0 is, vervang dan != door ==. > > (Voor de conversie naar Pascal: & is "bitsgewijze AND", << is "shift > left", != is "verschillend van", == is "is gelijk aan".) > > Jan. >
Technical Details
Message-ID:
<8nhbp6$ket$1@news.planetinternet.be>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<8nekll$iv2$1@news.planetinternet.be> <966495179.238356@marvin>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,a3337484a0f4caf0 X-Google-Attributes: gidfcea4,public From: "RedX" <RedX@mail.dma.be> Subject: Re: Statusport byte naar bits converteren. Date: 2000/08/17 Message-ID: <8nhbp6$ket$1@news.planetinternet.be> X-Deja-AN: 659436848 References: <8nekll$iv2$1@news.planetinternet.be> <966495179.238356@marvin> X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 X-Complaints-To: abuse@planetinternet.be X-Trace: news.planetinternet.be 966537830 20957 212.239.129.254 (17 Aug 2000 18:43:50 GMT) Organization: Planet Internet NV X-MSMail-Priority: Normal NNTP-Posting-Date: 17 Aug 2000 18:43:50 GMT Newsgroups: be.comp.programming