mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Computersteuerung


Autor: Sebastian Thalhammer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.

Ich habe eine Frage zur C Programmierung. Und zwar möchte ich mich mehr
in die fortgeschritteren Gefilde dieser Sprache einarbeiten: Die
Hardwaresteuerung mit C. Nur habe ich bislang keine geeignete Quellen,
sprich Tutorials, gefunden. Ist es mit C überhaupt möglich, dass ich
z.B.: den Drucker anspreche, oder das Modem, usw.

Ich bin mir ja ziemlich sicher, dass es geht. Aber aufgrund des
Informationsmangels im Internet kommen mir langsam Zweifel. Kann mir
jemand Links zu guten Seiten verraten, die diese Themen behandeln?

Vielen Dank im Voraus.
Sebastian Thalhammer

Autor: Markus Kaufmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sebastian,

natürlich kann man das mit C machen. Was Du vielleicht bei Deiner Suche
übersehen hast: Sowas macht man heutzutage über das Betriebssystem,
nicht direkt.

Um ein Modem am COM-Port anzusprechen benutzt man unter Windows
CreateFile. Wenn Du danach suchst, dann wirst Du sicher auch was
finden.

http://www.lookrs232.com/com_port_programming/

Markus

Autor: Frank Linde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und auch mal über den Tellerrand schauen: Linux ist (nahezu?) komplett
in C programmiert. In diesem Umfeld sollten sich reichlich
Informationen und Quelltexte zum Thema hardwarenahe Programmierung
finden lassen.

Gruß, Frank

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, ist in erster Linie Kommunikation mit dem Betriebssystem, da es nur
dadurch unabhängig von der jeweiligen Hardware wird. Was nutzt das
schönste Programm, welches dann nur auf exakt deinem PC läuft?
Ich bin schon eine ganze Weile raus aus dem PC-Software-Bereich,
erinnere mich aber, es grösstenteils über API gemacht zu haben. Ob das
noch up-to-date ist??

Autor: Markus Kaufmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank:
Die Linux-Sourcen werden ihm nicht allzuviel bringen, da im Kernel ja
nur Treiber sind und die eh' alles dürfen und außerdem Programme mit
Rootrechten eh' alles dürfen. Das läßt sich so nicht auf die
Windows-Welt übertragen.

@crazy horse:
Wenn er C programmiert ist die Winapi schon das Mittel der Wahl. Wenn
er C++ oder C# programmiert, dann kann er natürlich auch die MFC bzw.
die  .NET-Klassen verwenden.

Markus

Autor: thomas b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wichtig wäre noch welches Betriebsystem, da z.B. Win2K direkte
Portzugriffe unterbindet.
Im Allgemeinen würde ich eine DLL für Portzugriffe verwenden, man muss
das Rad nich neu erfinden :-)

Die PORT.DLL funktioniert gut und ist einfach einzubinden.

cu tb

Autor: thomas b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe gerade noch eine DLL gefunden.
Untersützt alle Betriebsysteme, mit Quelltext ...

http://www.logix4u.net/inpout32.htm

cu tb

Autor: Sebastian Thalhammer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, danke für die zahlreichen Antworten erstmal.

Ich werde sogleich alle Links durchforsten die ich finde. Achja, ich
programmiere in C und C++.

Autor: Sebastian Thalhammer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe noch eine Frage.

Also:
Ich habe mir gerade erst eine Tastatur von Logitech zugelegt. Mit der
ist es möglich verschiedene zusätzliche Funktionen auszuführen z.B.:
Lautstärke regeln. Hier wird wahrscheinlich die Soundkarte (oder in
meinem Fall der OnBoard Chip) modifiziert (berichtigt mich bitte, wenn
ich falsch liege).

Wird so etwas mit C oder C++ realisiert? Zugegeben, es wäre für mich
eine Nummer zu groß so etwas zu programmieren aber es interessiert mich
einfach.

Autor: Tobias Breckle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne, die tastatur regelt lediglich deine windows lautstärke.
sieht man auch gut wenn man den windows mixer öffnet und dann die
lautstärke lauter und leiser macht. da geht dann der schieberegler für
die allgemeine lautstärke mit.
denk mal schon das die das in c++ gemacht ham. assembler wäre hierfür
zu aufwändig, da es hier ja nicht auf geschwindigkeit ankommt.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

das geschieht einfach durch entsprechende Aufrufe der Windows API. Der
Tastaturtreiber der Logitech sendet an das OS den Befehl "Lautstärke
um 5 Punkte runter" und das OS sollte es dann ausführen bzw. die
Aufforderung an der Treiber der Soundkarte weiterleiten welcher dann
die entsprechenden Register im Soundchip ändert. Sowas wird zware in
der Regel mit C oder C++ geschrieben aber es spricht nichts dagegen
eine andere Programmiersprache zu verwenden. Für Treiber kommt
allerdings hauptsächlich C zum Einsatz da andere Sprachen bereits zu
weit von der Hardware entfernt sind.

Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.