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;
}
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;
}