inportb und c



  • Ich habe folgendes Programm:

    [code (type="C#") (tabs="width)]

    #include <stdio.h>
    #include <conio.h>
    #include <string.h>

    #define PORT 0x3F8 /* COM1 */

    int main(void)

    {

    int checkBuffer;
    int c;

    outportb(PORT + 1 , 0); /* Abschalten von interrupts */
    /* PORT - Kommunikation Einstellung /
    outportb(PORT + 3 , 0x80); /
    SET DLAB ON /
    outportb(PORT + 0 , 0x0C); /
    Setzen der Baudrate /
    outportb(PORT + 1 , 0x00); /
    Set Baud rate - Divisor Latch High Byte /
    outportb(PORT + 3 , 0x03); /
    8 Bits, No Parity, 1 Stop Bit /
    outportb(PORT + 2 , 0xC7); /
    Konfiguration von FIFO Control Register /
    outportb(PORT + 4 , 0x0B); /
    Einschalten von DTR, RTS, and OUT2 */

    do {

    checkBuffer = inportb(PORT + 5); /* Prüfen ob Buchstabe da ist /
    if (checkBuffer & 1)
    {
    c = inportb(PORT); /
    Holle Buchstabe /
    printf("%c", c); /
    Ausgeben am Monitor /
    if (c == 13) printf("\n");
    outportb(PORT, c); /
    sendet char zu SS */
    }

    if (kbhit())
    {
    c = getch(); /* wenn Taste gedrückt ist, holle das Zeichen /
    outportb(PORT, c); /
    sendet char zu SS */

    }

    } while (c !=27); /* Das Programm endet mit ESC / ASCII 27 */

    return 0;
    }

    [\code ]

    Ich möchte jetzt das Zeichen das ich über inportb bekomme c=inportb(PORT) als String behalten, in String "reinpacken", da ich es weiterbearbeiten will und es nicht nur bei einen Buchstabe bleibt; Die Eingabe kann lauten "start calc.exe"
    Wie geht das??

    Danke für die Hilfe



  • Das kommt darauf an, was du mit dem Zeichen/String machen willst.
    Du könntest z.B. folgendes machen:

    char myString[20]="Das Zeichen ist: x";
    .
    .
    .
    
    myString[17]=c; //'x' im String durch den Inhalt von c ersetzen.
    

    Am besten nimmst du einen String mit schön viel platz, und in denn schreibst du dann mit sprintf.

    mfg
    -bg-


Anmelden zum Antworten