Terminal anwendung (Com Protokoll...?) in C einbinden

Gast #87722
Lesenswert?

Guten Tag freunde der gepflegten Programmiersprache...

ich habe meine anwendung soweit fertiggestellt (messen, regeln etc.) es
werden die verschiedenen ergebnisse über das UART ausgegeben, geht
alles einwandfrei... jedoch muss ich immer hyperterminal starten oder
sowas, sehr blöd...
da habe ich mir nen paar gedanken gemacht und bin zu dem entschluss
gekommen: eine dos anwendung muss her, warum dos? ganz einfach, ich
kann nur C, und das programm muss auf einem alten 3/86er laufen...

Mein problem liegt dadrin: wie binde ich das protokoll (falls ich
überhaupt eins brauche) in meine anwendung ein? stehe da voll auf dem
trockenen und per google finde ich auch nichts was mir so richtig
weiterhilft...

ich würde mich über hilfe in form von beispielen, links oder
suchbegriffen freuen :)

Mfg
Marcel
Gast #87724
Lesenswert?

So Schwierig ist Dos nun auch nicht......
Bei dem Beispiel must du nur noch die HEX-Adresse für deinen Com-Port
ändern und dann sollte es klappen.


//Beispiel für _inp und _outp

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define port 0x378

int main (void)
{
unsigned char reg1, reg2;

do
{
reg1 = _inpw(port);
printf(" der alte wert der PORT-Adresse 0x378 lautet:
%hxHEX\n",reg1);
printf(" bitte geben sie einen neuen wert ein\n");
printf(" 0 fuer abbruch der eingabe\n\n");

fflush(stdin);
scanf("%hx",&reg2);
if (reg2 == 0)
    break;

_outpw (port, reg2);
reg1 = _inpw(port);
printf ("der neue wert der PORT-Adresse 0x378 lautet:
%hxHEX\n\n",reg1);
}while(1);

system("Pause");
return 0;
}
Gast #87727
Lesenswert?

1. kann sein, die frage ist, womit kompilierst du? (ich benutze
borland...)
2. durch code durchzusteigen, der nicht ein einzigen kommentar enthält
ist nu mal nicht so wircklich einfach...
3. siehe anhang!

Mfg
Marcel
Angehängte Dateien:
Gast #87728
Lesenswert?

Der scheint das \n als Escape für den <CR> nicht zu mögen und kommt
dann mit den Anführungszeichen (") total durcheinander. Das while zum
do findet er jedenfalls auch nicht ...

Grüße, Sebastian
Gast #87730
Lesenswert?

1. Du hast das alles in eine CPP-Datei geschrieben
    => unter Cpp muss man manches anders machen als unter C
2. _inpw wird manchmal auch nur inpw geschrieben
3. Zeile 14 hat eine zusätzlichen Zeilenumbruch (welchen durch das
   einfügen in das Forum entstand). Dieser ist zu beseitiegen.
4. _outpw wird wie auch _inpw manchmal outw geschrieben
5. Zeile 25,26 siehe 3.
6. Benutze Dev-Cpp ( http://www.bloodshed.net )
Gast #87731
Lesenswert?

Danke Peter und Tom!

Werde mir mal peters code in ruhe anschauen,,,

Und der code von tom funktioniert nach den änderungen, sorry hätte ich
auch selbst drauf kommen können :(

Mfg
Marcel

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren