C und Serielle Schnittstelle

Hi,

Wie kann ich mit C die serielle Schnitstelle steuern? z.B.: eine angeschlossene L E D leuchten lassen oder sowas in der Art.

Schonmal danke für Antworten
NOOB
 


also exakt kann ich dir da nicht helfen, aber es müsste ein pin masse haben, und dann die anderen je nach bedarf geschaltet werden. schnapp dir doch bei www.programmersheaven.com irgendnen seriellen treiber und experimentier ein bisschen. wenn dun voltmeter hast, kannste ja mal posten, wie viel spannung da rauskommt! (würd mich mal interessiern!)
 
Ich kann dir folgende Liste posten, die kann dir vielleicht weiter helfen :

Es gibt 12 BIOS Interrupts

0x5 Bildschirmdruck
0x10 Bildschirm Ein/Ausgabe
0x11 Ausstattungliste ermitteln
0x12 Grösse des Arbeitsspeichers Festlegen
0x13 Laufwerk Ein/Ausgabe
0x14 Ein/Asgabe über die Seiellen Schnittstellen
0x15 Recorder Ein/Ausgabe
0x16 Tastatur Ein/Ausgabe
0x17 Drucker Ein/Ausgabe
0x18 ROM Basic aktivieren
0x19 Urladerstartroutine aktivieren
0x1A Datum und Zeit


Ein Programm mit diesen Sachen kann wie folgt aussehen :


#include <dos.h>
#include <stdio.h>

main()
{
#define MEM 0x12
union REGS inregs,outregs;
int86(MEM,&inregs,&outregs);
printf("Arbeitsspeicher beträgt %d KByte",outregs.x.ax);
}

Komischer funkt dieses Prog nicht bei allen, ber ich denke ich hab dir ein wenig geholfen.
 
Hab auf programmersheaven.com einen recht einfachen Sourcecode für den Parallelport gefunden, der auch für Serielle geht.
Lautet:
#include<stdio.h>

void main()
{
FILE *sc1;
int i=0;

sc1 = fopen("COM1","w");
while(i<10000)
{
fprintf(sc1,"Das kommt aus COM1");
i++;
}
fclose(sc1);
}
Der serielle Port sendet theorethisch mit 12V (gemessen hab ich 10.86), deshalb kann man auch nicht so einfach einen TTL IC anschliessen, wie´s manchmal beschrieben wird. Die Spannung hab ich zwischen GND und CTS (Clear to send, wenn ich mich nicht irre) gemessen.
 
an der seriellen Schnittstelle herrscht ein spannungspotenzial von 30 V, also von -15V - +15V.
um die serielle schnittstelle zu programmieren, solltest du dich mal mit dem bautstein auseinandersetzen, der für die schnittstelle zuständig ist. nämlich der uart 8250/16540.
sein adressbereich ist einmal von 0x2F8 - 0x2FF und 0x3F8 - 0x3FF, also einmal com2 und com1.
ich würde dir jedenfalls die direkte registerprogrammierung empfehlen. wenn du borlandc benutzt kannst du es mit 'inportb' und 'outportb' - befehlen machen.
ich hoffe es hilft dir weiter.

AlanBraxe
 
Ja, hilft weiter, nur benutze ich leider Visual C++, gibts da auch eine bessere Möglichkeit als meine?
Ich hab bei mir nur 10 V gemessen. Is da was kaputt, oder kann ich mich "vermessen" haben?
 
Port I/O Schnittstelle

Um programm-mässig daten über die Serielle Schnittstelle zu senden kannst du dir das
DriverLINX-PortIO API von www.sstnet.com runterladen.
DAs bringt sogar nen treiber mit, damit das auch unter NT/2k/XP klappt

The Nazgul
 
schnittstellen

Hi
Ich versuche auch seit eininger zeit meine com1 schnittstelle anzusteuern über c.
Aber bisher ist mir das noch nie gellungen habe win 2000 und xp auf keinen funktioniert es !
Kann es sein das das windows gernicht zulässt die schnittstellen anzusteuern?

thx
 
Zurück
Oben