Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

Probleem I/O in C++

JurgenC
1 antwoord
  • 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;
    }

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.