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
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
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
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??
@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
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
Ich habe gerade noch eine DLL gefunden. Untersützt alle Betriebsysteme, mit Quelltext ... http://www.logix4u.net/inpout32.htm cu tb
Tja, danke für die zahlreichen Antworten erstmal. Ich werde sogleich alle Links durchforsten die ich finde. Achja, ich programmiere in C und C++.
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.
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.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.