Wer weiss, wie man unter Linux die parallele oder auch die serielle Schnittstelle anspricht?
Im DOS-Assembler einfach mit „IN Port, Byte“, aber unter Linux??
Am liebsten wäre mir ein Beispielcode mit Erklärung in C. Einfach mit dem gcc-Compiler zu compilieren!?
Ich suche schon sehr lange, und bin für alle Ideen offen!
Ich denke. du kannst unter Linux nicht so vorgehen, wie unter DOS, da nämlich unter DOS ein direkter Zugriff auf die Hardware möglich war (wie du auch beschrieben hast). Unter Linux ist das nicht erlaubt, es muß über Treiber laufen (die dev-Files??? weiss ich auch nicht sooo genau).
Du kannst nicht direkt ein Bit auf die Schnittstelle setzen.
Gruss, Christof
P.S. Ich kann Dir leider nicht wirklich detailliert Auskunft geben, da ich Linux auch mehr theoretisch kenne.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Am liebsten wäre mir ein Beispielcode mit Erklärung in C.
Einfach mit dem gcc-Compiler zu compilieren!?
Ich suche schon sehr lange, und bin für alle Ideen offen!
Man kann es gar nicht oft genug sagen: bevor man lange nach Linux-Infos sucht, sollte man erst einmal bei http://www.linuxdoc.org vorbeischauen. Dort gibt es den "LPG (Linux Programmer’s Guide) online und zum download. Dort wird auch auf Schnittstellenprogrammierung nebst Beispielcode eingegangen.
Lösung
geht aber nur als root!!
außerdem weiss ich nicht welche include dateien weggelassen werden können, da ich es aus meinem programm ausgebaut hab…
wenn du den druckerport ansteuren willst, musst du natürlich den port ändern (0x378)
hatte dein problem auch sehr lange, aber irgendwann bin ich fündig geworden (brauchte das um ein display am druckerport anzusteuren)
also wenn du noch fragen hast kannst du dich melden!
#include #include #include #include
#define port 0x180
int main(void)
{
int wert;
/* Port aktivieren
if (ioperm(port,3,1)!=0)
{
fprintf(stderr,„oops… ioperm() failed!\nare you running as root?\n“);
exit(1);
}
printf(„Port initialized\n“);
/* wert einlesen */
wert = inb(port);
/* wert ausgeben (hier die 4, also binär 100) */
outb(4,port);
/* Port freigeben */
printf(„Port denitialized\n“);
ioperm(port,3,0);
return 0;
}
P.S. hab das programm in diesem zustand noch nicht getestet, müsste aber eigendlich klappen!
also wenn du noch fragen hast kannst du dich melden!
Ich würde mich sehr freuen, Deine Mailadresse zu erhalten, um nochmal spezielle Fragen klären zu können!!
Is absolut genial! Genau SO etwas habe ich mir vorgestellt!!!
geht aber nur als root!!
außerdem weiss ich nicht welche include dateien weggelassen
werden können, da ich es aus meinem programm ausgebaut hab…
wenn du den druckerport ansteuren willst, musst du natürlich
den port ändern (0x378)
hatte dein problem auch sehr lange, aber irgendwann bin ich
fündig geworden (brauchte das um ein display am druckerport
anzusteuren)
also wenn du noch fragen hast kannst du dich melden!
#include #include #include #include
#define port 0x180
int main(void)
{
int wert;
/* Port aktivieren
if (ioperm(port,3,1)!=0)
{
fprintf(stderr,„oops… ioperm() failed!\nare you
running as root?\n“);
exit(1);
}
printf(„Port initialized\n“);
/* wert einlesen */
wert = inb(port);
/* wert ausgeben (hier die 4, also binär 100) */
outb(4,port);
/* Port freigeben */
printf(„Port denitialized\n“);
ioperm(port,3,0);
return 0;
}:
P.S. hab das programm in diesem zustand noch nicht getestet,
müsste aber eigendlich klappen!
Hi David
das ist gut, klau ich sofort , okay?
Dafür gibts ein fettes Sternchen, hättest mindestens 3 Sterne verdient.
Gruß
Rainer
Dafür gibts ein fettes Sternchen, hättest mindestens 3 Sterne
verdient.
Danke
willst du vielleicht auch ein display ansteuern?
wenn ja, hab ich ein programm, was dir die momentanen kBytes pro sekunde anzeigt: www.abtoen.org --> sourcecodes --> bwm2lcd
wenn du willst kann ich dir (oder jemand anders der das hier liesst) auch lcdprint schicken, mit dem man einfach text auf ein display schreiben kann.
auch die 8 selbstzudefinierenden zeichen eines displays kann ich schon nutzen.
willst du vielleicht auch ein display ansteuern?
wenn ja, hab ich ein programm, was dir die momentanen kBytes
pro sekunde anzeigt: www.abtoen.org --> sourcecodes -->
bwm2lcd
wenn du willst kann ich dir (oder jemand anders der das hier
liesst) auch lcdprint schicken, mit dem man einfach text auf
ein display schreiben kann.
auch die 8 selbstzudefinierenden zeichen eines displays kann
ich schon nutzen.
david
Sagenhaft, klar, will ich haben )
Vielen Dank
Gruß
Rainer
Sagenhaft, klar, will ich haben )
Vielen Dank
Gruß
Rainer
OK!
falls es noch mehr haben wollen und ich keine lust habe einige mails zu schicken könnt ihr es jetzt runterladen: http://abtoen.purespace.de/files/lcdprint.tar.gz
ach ja: das display muss vorher initialisiert sein…mal schauen, vielleicht baue ich das mal diese woche ein … aber bwm2lcd macht das…vielleicht könnt ihr mir ja die arbeit abnehmen…ich hatte da so an lcdprint -i oder so gedacht!
generell:
bitte sagt mir beschewid wenn ihr mit dem programm rumexperimentiert oder es in gebrauch habt (oder bei fragen)
vielleicht sollte ich echt mal eine seite machen diue sich mit diesem thema beschäftigt!
ich weiss selber wie es ist danach im netz zu suchen!!!
immer nur kleine häpchen!