Ga naar inhoud

Probleem I/O in C++


Aanbevolen berichten

Hallo, Ik wil via een nulmodem kabel, via de printerpoort, tussen twee PC's 8 bits oversturen. Ik heb twee programma's geschreven in Visual C++. De een geeft output, de ander leest de input. Het probleem is nu dat er alleen maar 5 bits getallen over gestuurd kunnen worden, dus getallen van 0 - 31. Een groter getal dan 32 levert weer het getal 0 op etc. Wie kan mij helpen met dit probleem? Bijgevoegd zijn beide C++ source codes Alvast bedankt voor reacties, groet, Martijn --------------------Output.cpp #include <conio.h> //voor de functie: int _outp( unsigned short port, int databyte ); #include <stdio.h> //voor de functie: scanf("%d", &inval); #include <iostream.h> // Dit programma leest een getal in van het toetsenbord // en stuurt het getal als een 8bits binair getal (unsigned short) naar LPT1 int main () { int inval=0; while ( inval <256) { printf("Enter a value in decimal (256 to quit)>"); scanf("%d", &inval); _outpd(0x378,inval); } _outpd(0x378, 0); return 0; } ----------------------Input.cpp #include <conio.h> //voor de functie: int _inp(); #include <stdio.h> //voor de functie: printf(); #include <iostream.h> // Dit programma leest de LPT1 poort uit // als een 8 bits getal en drukt het resultaat af int main (void) { int inval; int invalold; int output2; while (1) { invalold = inval; inval = _inpd(0x378+1); output2 = (inval | 0x400) >> 3; if (inval != invalold) { printf("Waarde is: %d n", output2); } } return 0; }
Link naar reactie
Als ik je probleem zo zie zou ik zeggen, splits je data op in 2 4-bit getallen (ZENDER) (Splits 8-bit in MSB en LSB) int LSB = 0; int MSB = 0; While (8-bit>=32) { MSB += 1; 8-bit -= 32; } LSB = 8-bit (ONTVANGER) (Plak ze terug aan elkaar) 8-bit = (32 * MSB) + LSB [ Dit bericht is bewerkt door: JurgenC op 2002-04-22 11:16 ]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...