Hallo leute hab mal ne Frage hab jetzt auch schon alle foren abgeklappert! Ich suche Quellcode zum Ansprechen des LPT Ports Für ein lauflicht! Ich benutzte Windows XP und Visual Studio 2005. Habe auch schon ein Beispiel Programm gefunden Finde das Aber zu umfangreich kennt einer ne Seite Wo ein Kleiner Quellcode steht um LED an un auszuamchen??? Habe da was mit CreateFile WriteFile gehört finde aber nix bestimmtes! Welche Header dateien brauch ich ???? Soll so abgespeckt wie Möglich sein??? Das ganze soll so laufen habe ein Emuliertes Betriebsystem Osek das ein lauflicht steuert will die dort eingestelleten LED mit dem LPTport gleichsetzten damit das lauflicht auf meinen led geht!!! MFG DerTurk
:
Gesperrt durch Moderator
Moment da gibt es Infos auf http://www.codeprject.com isch schau mach, ob ich den exakten Link finde... Grundlagen Hardware Interface Programming in VC++ - Part I (Port Access) By Jaygiri http://www.codeproject.com/KB/system/ppsc.aspx Parallel Port Pin Control Library (PaPiC) (C++) By gordius http://www.codeproject.com/KB/system/PaPiC.aspx Reading from Parallel Port using Inpout32.dll (VB) By phebejtsov http://www.codeproject.com/KB/vb/Inpout32_read.aspx I/O Ports Uncensored - 1 - Controlling LEDs (Light Emiting Diodes) with Parallel Port (C++) By Levent Saltuklaroglu http://www.codeproject.com/KB/cs/csppleds.aspx I/O Ports Uncensored Part 2 - Controlling LCDs (Liquid Crystal Displays) and VFDs (Vacuum Fluorescent Displays) with Parallel Port (C++) By Levent Saltuklaroglu http://www.codeproject.com/KB/cs/cspplcds.aspx Anwendungen Controlling Floppy Drive Stepper Motor via Parallel Port (C++, .NET) By Ashish Derhgawen http://www.codeproject.com/KB/system/floppystepper.aspx Stepper Motor Control through Parallel Port (Vscript, VB) By bhaskar_gupta http://www.codeproject.com/KB/vbscript/Stepper_Motor_Control.aspx Control Electrical Appliances using PC (C#) By Taha Amin http://www.codeproject.com/KB/cs/control_e_appliances.aspx Computer Controlled Watering System with C# or VB.Net By Troy Simpson http://www.codeproject.com/KB/dotnet/ezSprinkle.aspx
@ Der Türke Was du mit OSEK meinst, verstehe ich nicht. Die Links oben sind zum Steuern von einfacher Hardware an einem Parallelport aus Windows heraus, wobei die Programme mit verschiedenen Sprachversionen von Visual Studio geschrieben sind.
@ stefan Mit osek meinte ich das ist ein Betriebssytem das am PC simuliert also TASK Interrupts unsw... diese sollen am Druckerport sichtbar gemacht werden hoffe konnte das jetzt irgendwie beschreiben...!!
Wenn dein Programm unter einem anderen Betriebssystem (OSEK oder emuliertes OSEK) laufen soll, musst du dich ja an die Programmierschnittstellen (API) des OSEK halten, d.h. die API von Windows bringt dir überhaupt nichts. Du machst eigentich eine Crosscompilierung von Windows aus für OSEK. Die Links oben sind dann softwareseitig "wertlos"; lediglich die Erklärungen zur Hardware kannst du dir reinziehen. Oder du kannst die Sache mit den Links oben erstmal unter Windows durchziehen und später versuchen mit dem gewonnenen Verständnis und der Windows-Programmlogik das OSEK-Programm zu machen. Das kann die Entwicklung beschleunigen oder verzögern; das weiss man im Voraus nicht genau. Reine Neugier: Gibt es einen Emulator für OSEK (und das dazugehörige Software Development Kit (SDK)) zum kostenlos Testen/Lernen? ADD: Eine "Falle" kann der OSEK Emulator an sich sein. Bist du sicher, dass der Emulator auch die Hardware (Parallelport) ansprechen kann oder ist es ein reiner Softwareemulator, der nur virtuelle Hardware anbietet (Beispiel AVR Simulation im AVR Studio)? Im schlechtesten Fall kommst du nämlich aus dem Emulator programmiertechnisch gar nicht raus an den physikalischen Parallelport. Gibt es Internetseiten, wo der Emulator genauer beschrieben ist? ADD2: Die vielen Fragen kommen, weil ich in deiner Frage zum ersten Mal von OSEK (genauer OSEK-OS) gelesen habe. Wikipedia oder die Seite des Herstellers sind nicht soerklärend, daher direkt die Fragen an den Anwender (dich, wenn du schon mal da bist ;-)
also man definerit seine Task Interupts in nem Kleinen Programm ProOsek das dann die dazugehörige .C und .H liefert die man in sein Projekt einbinden kann.dann hab ich mir halt en demoprogramm geschrieben mit den TASK der dann das ganze verhalten von osek emuliert also rein software !!! also ich bekomm ein lauflicht hin mit osek aber halt simuliert mit nullen auf nem DOS fenster will eigentlich jetzt statt der Nullen das so steuern das die led an meiner platine leuchten
Zumindest gibt es Literatur und eine Demoversion OSEK. Betriebssystem-Standard für Automotive und Embedded Systems von Matthias Homann http://www.mitp.de/vmi/mitp/detail/pWert/1552/titel/OSEK.%20Betriebssystem-Standard%20f%C3%BCr%20Automotive%20und%20Embedded%20Systems
> Nullen im DOS-Fenster bei Ausgabe innerhalb von OSEK.
Das hört sich fast schon wie ein geschlossener Softwareemulator an, bei
dem du nicht an die Hardware des drunterliegenden PCs heran kommst.
Vorausgesetzt du benutzt schon die richtigen API-Funktionen und keine
einfache Textausgabe.
Ich kann dir ohne genaue Kenntnis der API von OSEK und des Emulators
nicht weiterhelfen. Vielleicht findest du ja noch Referenzen/Links im
Netz; ich stöbere auch noch etwas rum (im Fernsehen kommt sowieso
nichts).
Ja das Buch habe ich ja !!! Die API hab ich vor mir weis aber net was ich genau suchen soll :-( das Demo das das lauflicht macht habe ich aus diesem Buch...!!!
Dann kommen wir der Sache schon näher. Der OSEK Emulator ist also "Auf CD: Demoversion (zeitlich unbegrenzt) von ProOSEK 4.0 für Windows 2000, NT und XP; Beispiele aus dem Buch". Da brauche ich die anderen 23 OSEK Anbieter nicht mehr abklappern und kann mich bei der Recherche auf ProOSEK konzentrieren ;-) Ich ziehe mir jetzt das Probekapitel und das Inhaltsverzeichnis rein, um herauszufinden, ob das Konzept und die Fähigkeiten des Emulators dort näher beschrieben sind.
Ziemlich zäh das Ganze. Proosek gab es vom 3Soft GmbH und war eine bekannte Software. Um 2002 tauchte dann die Software tresos ecu auf. 2004 wurde 3Soft von Elektrobit geschluckt. Elektrobit heisst jetzt EB. Und 2007 findet man auf der EB Seite bei der Suche nach Proosek nichts mehr. ADD: 2004 ist obiges Buch rausgekommen - passt. ADD2: In den Bibliotheken in meiner näheren Umgebung ist das Buch leider nicht vorhanden.
In Fulda, Kassel und Giessen ist das Buch ausleihbar. Auch in Braunschweig, Bremen, Göttingen, Hamburg, Ilmenau, Jena, Köthen, Lübeck, Merseburg, Potsdam, Stralsund. Berlin sowieso und merhfach. Und im Wilden Süden auch: Würzburg, Landshut, Regensburg, Ingolstadt, Coburg, Nürnberg, München, Aschaffenburg, Erlangen-Nürnberg. Auch in der Mitte gibt es das Buch: Dresden, Esslingen, Furtwangen, Heidenheim, Heilbronn, Karlsruhe, Konstanz, Mannheim, Offenburg, Reutlingen, Tübingen, Ulm. Nur nicht hier OK Fernleihe ginge ;-)
OK ein lauflicht habe ich jetzt endlich mal hingekriegt versuche es jetzt mal mit der Demo version vom ProOesk zu koppeln ob das dann auch noch geht!!! mal sehn!!!
Hallo, gibts denn auch echte C tutorials dazu? Ich möchte eigentlich nicht mit Visual basic oder c++ anfangen. Ein Tutorial, welches den Parallel port in C behandelt währe gut. Wo gibts sowas?
Bei den mir bekannten OS regelt man Parallelport-Zugriffe eigentlich direkt auf Registerebene. Linux ioperm(), outb() und inb() sind deine Freunde Guck: http://tldp.org/HOWTO/IO-Port-Programming-6.html#ss6.1 DOS Gibt's auch ein outb(), aber die Parameter sind vertauscht. Im Zweifelsfall (und wenn man auf Portabilität verzichtet) tuns Assembler-Inlines auch.
Oliver D. wrote: > Hallo, > > gibts denn auch echte C tutorials dazu? > > > Ich möchte eigentlich nicht mit Visual basic oder c++ anfangen. > > Ein Tutorial, welches den Parallel port in C behandelt währe gut. Du brauchst für Windows einen Treiber, der den Port allokiert und dir den Zugriff darauf gestattet. So was zum Bleistift http://www.driverlinx.com/DownLoad/DlPortIO.htm Da sind auch Demos mit dabei. Ist sehr einfach anzusteuern.
Oder versuchs mal mit Windows95, damals gab's nämlich diese Ansätze von Zugriffsrechten noch nicht, und man konnte direkt aufm Port rumkritzeln. Bei WinNT aufwärts (denk ich) hat man diese Versuche mit Restriktionen aber halt unternommen, und dann braucht man eben die von Karl heinz Buchegger angesprochenen "Tricksereien".
> Bei den mir bekannten OS regelt man Parallelport-Zugriffe eigentlich > direkt auf Registerebene. > > Linux Da regelt man das "eigentlich" gar nicht so. Es gibt schließlich den parport-Treiber, mit dem man sauber über das Betriebssystem auf den Parallelport zugreifen kann. Hat den Vorteil, daß man nicht von Hand mit irgendwelchen Registern fummeln muß, daß das Programm nicht spezifisch auf eine bestimmte Hardware eingeschränkt wird, daß man zum Ausführen nicht root sein muß und daß ein Programmfehler nicht gleich das ganze System lahmlegen kann.
So jungs hab jetzt ne weile rumgeforscht bis ich was gescheites gefunden habe! Habe nun folgendes Problem: Ich habe auf der seite http://home.snafu.de/mgrafe/treiber.htm den Giveio treiber gefunden und Instaliert so wie es in der anleiteung beschrieben ist mein problem ist aber wenn ich einen einfachen code #include <stdio.h> #include <conio.h> #define LPT1 0x378 main(){ _outp(LPT1,0x011); return 0; } eingebe kompailiert er zwar den Code bringt aber folgende fehler meldung: Unbehandelte Ausnahme bei 0x102708ab(msvcr80d.dll) in test.exe: 0xC0000096:Privileged instruction. der treiber sollte dazu dienen auf das LPT port unter windoes XP zuzugreifen aber das macht der nicht??? Hat jemand rat??? MFG Der_Turk
Ok habs hinbekommen man musste noch eine Funktion giveio schreiben int giveio(void) { OSVERSIONINFO osvi; int ret = 1; osvi.dwOSVersionInfoSize = sizeof osvi; GetVersionEx(&osvi); if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) { HANDLE h; h = CreateFileA("\\\\.\\giveio", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (h == INVALID_HANDLE_VALUE) ret = 0; else CloseHandle(h); } return ret; } aber wenn ich jetzt das Programm laufen lass geht es nur 1 wert eingebe wie zum BSP :_outp(LPT1,7); wenn ich es mit ner Forschleife mache kommt immer der fehler Syntaxfehler:Es fehlt ';'vor 'Typ' 'a':nichtdeklarierter Bezeichner ich peil gar nix mehr und das ist der Code zudem der Fehler kommt giveio(); int a; for (a=0;a<255;a++) _outp(LPT1,a) return 0; } ich rasste aus was will den der Compiler noch ich seh kein logischen fehler??????? HHEEEEEEEEEEEEELLLLPPPPP
1 | int main(void) |
2 | {
|
3 | int a; |
4 | |
5 | giveio(); |
6 | |
7 | for (a=0;a<255;a++) |
8 | _outp(LPT1,a); // <== ; nicht vergessen! |
9 | |
10 | return 0; |
11 | }
|
Beitrag #6650705 wurde von einem Moderator gelöscht.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.