Zugriff auf die serielle Schnitstelle mit Basic unter Linux
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
all
allgemeiner natur
besseren platz
byte
entsprechende funktion
externen temperatursensoren
gerade software
interessante frage
jeweiligen anschlusses
korrekte register
mod
paar argumente
parallel
register
steuerung
thw
verzgerung
vorlesung
wenigsten
zhler
-
Hi @ all,
Ich poste mein Problem mal hier weil es in keines der Unterforen richtig passen will, es streift zwar die Programmierung,die Hardware und die Kosolenaktrobatik ein wenig aber ist wohl doch eher allgemeiner Natur deswegen schreib ich mal hier, wenn ein Mod einen besseren Platz wei? dann bitte dorthin verschieben.
zum Thema:
Ich programmiere gerade Software um die siriellen Schnitstellen meines Linux Rechners anzusprechen und habe damit aber ein Verst?ndnissproblem.
Ich kann auf die Schnitstellen zugreifen indem ich /dev/ttyS0 bzw ttyS1 in meinem Programm als Datei ?ffne und dort ein Byte hineinschreibe:
Code:
#! /usr/bin/yabasic
an = 255
aus = 0
zaehler = 5
verzoegerung = 1
for n = 1 to zaehler
com2 = open (1,"/dev/ttyS1","wb")
print n, " -- aus"
poke com2, aus
wait verzoegerung
close 1
wait verzoegerung
com2 = open (1,"/dev/ttyS1","wb")
print n, " -- an"
poke com2, an
wait verzoegerung
close 1
wait verzoegerung
next n
da funktioniert auch schon was und zwar blinken 2 LEDs die ich an PIN 4 und 7 des 9poligen Conectors angeschlossen habe, und das sollen sie auch.
Wenn ich aber versuche sie Einzeln anzusteuern indem ich das Byte reduziere (z.B. auf dezimal 1 f?r die LED an pin 4) dann hat das keinen Effekt und es blinken immer noch beide LEDs.
Als ich nun ein wenig dar?ber nachgedacht habe fiel mir auf das ich ja gar keine M?glichkeit habe das korrekte Register der Schnitstelle zu w?hlen.
Unter DOS mache ich das mit dem Abstand des Registers zu Basisadresse des jeweiligen Anschlusses
(in meinem Falle f?r den COM 2/ ttyS1 w?re die Basisadresse 2F8 und das Offsett des von mir benutzten Modemsteueregisters +4)
nur wie bekomme ich das unter Linux hin ? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
In der Tat eine interessante Frage. Ich hab vor l?ngerer Zeit mal eine Vorlesung zu dem Thema besucht, allerdings ging's da um parallele Schnittstellen (die ja ein "wenig" anders funktionieren). Es gibt aber ein GPL-Projekt namens digitemp, welches z.B. zur Steuerung oder ?berwachung von (externen) Temperatursensoren verwendet werden kann. Da digitemp OpenSource ist, kannst du dir ja mal den Quelltext anschauen. Ist zwar in C geschrieben, aber vielleicht findest du dort trotzdem eine Antwort auf deine Frage.
http://www.digitemp.com/software.shtml
Hoffe es bringt dich wenigstens ein bisschen weiter.
LG,
thw -
thx thw,
ich weds mir mal anschauen...ich galaub aber c hat extra funktionen f?r sowas, die nehmen dann sicher nur die entsprechende funktion und ?bergeben ein paar argumente und bekommen ihre daten eingelesen bzw. gesendet...na wie auch immer, ich schau mal nach. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage