Serielle Schnittstelle ansteuern in C

Diskutiere Serielle Schnittstelle ansteuern in C im Developer Network Forum im Bereich Hardware & Software Forum; Liebe Powerforenuser, Ich habe einen Ultraschallsensor, der Entfernungen zu Objekten misst und die Werte in Inches wiedergibt. Er hat eine...
  • Serielle Schnittstelle ansteuern in C Beitrag #1
Cheddar

Cheddar

Bekanntes Mitglied
Dabei seit
05.04.2009
Beiträge
453
Reaktionspunkte
0
Ort
Cheddar (Somerset)
Liebe Powerforenuser,
Ich habe einen Ultraschallsensor, der Entfernungen zu Objekten misst und die Werte in Inches wiedergibt. Er hat eine angelötete Serielle Schnittstelle, die sich problemlos an meinem Rechner anschließen lässt. Nun möchte ich ein Programm in C schreiben, das folgendes macht:
1. Einen Wert aus dem Gerät lesen und
2. alle Zeichen herausfiltern, die nicht 0123456789. oder , sind
3. Diesen Wert in einen float schreiben, um ihn per printf(""); auszugeben.

Das wichtigste ist für mich momentan Punkt 1. Das Programm will ich nicht verkaufen oder zum download anbieten, es soll für mein System optimiert sein. Ich nutze Debian GNU/Linux 5.0.1 Lenny. Ein Verweis auf eine Headerdatei mit den enthaltenen Funktionen zum "Seriellismus" wäre hilfreich.
Dankt für kommende Antworten,
Cheddar
 
  • Serielle Schnittstelle ansteuern in C Beitrag #2
Websurfer

Websurfer

Bekanntes Mitglied
Dabei seit
03.01.2000
Beiträge
5.265
Reaktionspunkte
2
und warum Schreibst du das in der Hackerzone?
in der Software-Ecke oder in Developer-Network wäre das besser aufgehoben.
 
  • Serielle Schnittstelle ansteuern in C Beitrag #3
SR530

SR530

PowerUser + Ex Super-Moderator
Dabei seit
21.02.1999
Beiträge
9.117
Reaktionspunkte
0
... oder vielleicht hier ... :idee:
 
  • Serielle Schnittstelle ansteuern in C Beitrag #4
Egal88

Egal88

Super-Moderator & Mr. Powerforen 2012
Teammitglied
Dabei seit
13.05.2000
Beiträge
10.828
Reaktionspunkte
4
Ort
hinter'm Mond ...
Das gehört in die Entwickler-Ecke.
 
  • Serielle Schnittstelle ansteuern in C Beitrag #5
Cheddar

Cheddar

Bekanntes Mitglied
Dabei seit
05.04.2009
Beiträge
453
Reaktionspunkte
0
Ort
Cheddar (Somerset)
Entschuldigung, ich habe, wie ihr seht, ins falsche Forum gepostet. Um noch einmal zum eigentlichen Thema zurück zu kommen:
Ich habe inzwischen gelesen, dass man mit
Code:
FILE * f = fopen("/dev/ttyS0","rw");
die Daten auslesen kann und sie mit fscanf oder fprintf schreiben und lesen kann, wie bei einer normalen Datei. Trotzdem sehe ich auf anderen Websites noch unübersichlichen Code, in dem ca. 5/6 mir unbekannte Headerdateien eingebunden sind. Was habe ich also zu beachten und geht das ganze wirklich so einfach wie das öffnen einer Datei?
 
  • Serielle Schnittstelle ansteuern in C Beitrag #6
O

oiermann

Bekanntes Mitglied
Dabei seit
30.12.2005
Beiträge
1.342
Reaktionspunkte
0
Ort
Milchstrasse
Du musst vorher erstmal klären, WIE das Teil sich auslesen lässt. Gibt es die Daten per UART aus? I2C/TWI? ... ? ...?

Beim UART musst du noch die Baudrate einstellen, Parität und Stoppbit.
Für die "schöne und einfache" Variante, mit fopen() weiss ich gerade nicht, wo du nachsehen kannst, aber da überhäuft dich google 1000%ig mit genug Ergebenissen, wenn du nach "UART linux", "C UART", "GCC UART", .... suchst.
Die "schöne und einfach Methode", aber auf einem viel Hardwarenäheren Level wäre die hier:
http://wiki.osdev.org/Serial_ports dies ist doch noch recht easy und man hat alle Möglichkeiten direkt in der Hand.

Als allerletztes, wenn das Teil z.B. die Daten nicht per UART raushaut oder die beiden andren Möglichkeiten nicht klappen/in Frage kommen, bleibt dir "Bit Banging".
Sprich du legst die 0en und 1en an, wenn du sie brauchst und liest sie ein, wenn du sie brauchst.
Das sollte aber nicht nötig sein, da es für nahezu jedes Protokoll schon libs gibt.
 
Thema:

Serielle Schnittstelle ansteuern in C

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben