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-