Hallo Zusammen zurzeit versuche ich mich in Osek einzuarbeiten und habe mir das einzige gescheite buch von amazon dafür gekauft von "Matthias Homan OSek" meine aufgabe ist es ein lauflicht an einem Drucker Port zu realisieren! Das heist ich hab ein kleines Modul das folgende Bauteile hat: 2 von Texas Instrument Octal Buffer and Line Driver SNHCT541N und einen Philips 74HC high-speed Si-gate CMOS devices diese Teile steuern 12 LEDs 5 schalter. Meine Frage wäre jetzt wie hau ich ne software auf mein Modul drauf es hat nen DruckerPort das habe ich mit nem USBtoCom und darauf noch en Druckerport adapter drauf verbunden!würde diese art von verbindung gehn! Eine beispiel software habe ich ein lauflicht in C geschrieben nur der ganze vorgang wie ich was machen muss fehlt mir noch ein kleiner Tip würde mir echt sehr helfen da ich beim googlen net viel gefunden habe!!! und folgende programme hab ich ProOeskWin32x86,OsekSimulation Gui waren auf der Cd vom buch dabei MFG derturk
Bitte leute bräuchte dringend mal hilfe hat vlt jemand wenigstens auch mal das Buch benutzt und die demos zum laufen gebracht weili ich krieg nicht mal die demos hin!!
Hallo, es liegt wahrscheinlich an Deinen Informationen: 1. ein Lauflicht an einem Druckerport geht ohne OSEK 2. OSEK läuft normalerweise auf Mikrocontrollern 3. Die haben für gewöhnlich keinen Druckerport Was möchtest Du uns mit: > auf mein Modul drauf es hat nen DruckerPort > das habe ich mit nem USBtoCom und darauf noch en > Druckerport adapter drauf verbunden! sagen ? Gruss Otto
Also meine Aufgabe ist es anhand einer OSEK Emulation ein Lauflicht am Druckerport zu realisieren. Und am Druckerport habe ich ein Modul angeschlossen das diese Bauteile hat 2 von Texas Instrument Octal Buffer and Line Driver SNHCT541N und einen Philips 74HC high-speed Si-gate CMOS devices! Es ist ne kleine Plattine mit LED und Schalter und hat die oben genannten Bauteile und einem Druckerport. Zur letzten Frage: Also ich arbeite mir einem Notebook das kein Druckerport hat deswegen möchte ich einen USB to COM/Druckeranschluß adapter benutzten umd ggf. irgendwie das modul zu flaschen falls das möglich sein sollte. Weis aber nicht wie ich vorgehn sollte. Ich habe mal ein demo Programm versucht zum laufen zu kriegen aber auch ohne erfolg. Zuerst erstellt man ja eine .oil datei mit den Tasks ect. dann bekommt man ne oil.c und ne oil.h datei diese für ich in visual studio zusammen und kann diese mit ner Test funktion Debuggen aber was für datei typen sollte ich erstellen um sie dann auf das Modul zu flaschen damit das läuft?
Hallo, wenn, wie ich das jetzt verstehe, das Modul nur aus LED-Treiber und evtl einem MUX oder "was-auch-immer" besteht, kannst Du da nichts "flashen". Das sind nur Interface-Bausteine und das Programm läuft auf Deinem Notebook. Unabhängig vom OSEK müsstetst Du erst einmal sehen, ob Du Deinen Druckerport ans Laufen bringst. Versuche also zunächst, ob sich ein Drucker überhaupt ansprechen lässt. Anschliessend versuche, den Druckerport mit Deinen LED unter C (oder-was-auch-immer) anzusprechen. Die mit der OSEK-Konfiguration erzeugten "OIL"-Dateien werden in ein Projekt eingebunden, um dessen Echtzeitverhalten zu "managen". Gruss Otto
Ich hab zwar keine Ahnung um was es hier eigentlich geht, OSEK hab ich noch nie gehört, aber meistens geht das mit den USB Adaptern schief. Diese Dinger bilden nunmal keine vollständig kompatiblen Schnittstellen nach. Meist sind nur die Grundfunktionen implementiert, also serielle Daten per RS232 austauschen oder eben einen Drucker an der parallelen Schnittstelle betreiben. Mit den "echten" Schnittstellen sind jedoch auch Nutzungen ausserhalb der eigentlichen Aufgabe möglich, man kann da einzelne Leitungen ansteuern, was ja auch reichlich für diverse Schaltungen benutzt wird. Bei den USB-Pseudo-Schnittstellen wird dies in den meisten Fällen nicht unterstützt, sodass solche Schaltungen damit einfach nicht funktionieren können. Nimm einen richtigen Rechner, der auch richtige Schnittstellen hat oder kauf dir ne PCMCIA-Karte. Letztere haben meist eine komplette Schnittstelle drauf und damit kann man dann auch an einzelnen Leitungen wackeln. bye Frank
Zum flaschen wenn ich das modul anschalte ohne das es am Pc angeschlossen ist lauft aber ein programm drauf LED blinekn also es tut sich was wenn ich mit den schaltern spiele !!! was hat das zu bedeuten???wäre es eventl. möglich jetzt statt ner EXE in Visual Studio einach mal ne Hex daraus machen und das ding versuchen irgendwie drauf zuhauen es soll ja ein embedded system sein??? Falls das jetzt falsch wäre meine aussage muss ich wohl echt versuchen denn Druckerport anzusprechen ... :-(
Wie sollten an einem Modul mit nem Buffer und nem MUXer drauf von allein LEDs leuchten? In diese Chips kann man auch garantiert nix flashen, schon garnienicht irgendwelche .EXE Dateien. Ist da etwa noch mehr drauf? Wie wärs mal mit sinnvollen Informationen? bye Frank
Hallo, > Zum flaschen wenn ich das modul anschalte ohne das es am Pc > angeschlossen ist lauft aber ein programm drauf LED blinken > also es tut sich was wenn ich mit den schaltern spiele !!! dann ist aber mit Sicherheit mehr auf dem Modul als irgendwelche "74HCT"..... Wenn Du wirklich Hilfe erwartest, poste doch mal ein Foto und/oder noch besser Schaltplan von dem Modul. Gruss Otto
also so sieht das ganze gebilde aus hab es mal fotographiert!!! wenn ich es anschalte leuchten die LEDs ok ich muss zugeben von nem ablaufenden programm ist nicht die rede....
Hallo, da ist nichts drauf, was Du "flashen" kannst. Das Programm läuft auf Deinem PC und muss den Druckerport ansteuern können. Notfalls hol den ältesten PC, den Du finden kannst, der einen Druckerport hat - damit sollte es gehten. Gruss Otto
OK so langsam hab ich mich schon vertieft in das Ganze!! meine Aufgabe ist es jetzt den Druckerport (LPT) mit Osek anzusprechen kennt sih da jemand mit der API aus??? also ein lauflicht hatte ich schon hinbekommen aber nur zum teste in C++. Ich will das Demo Programm das ich hab jetzt so ändern das ich den Druckerport ansteuern kann??? hat jemand mit sowas erfahrung??? hierist der demo code ist ein laflicht auf osek aber halt da kommt es im Dosfesnter und spricht nix an!!! #include <conio.h> #include <stdio.h> #include <string.h> #include "LptTools.h" #include "os.h" #include <osekguielements.h> /*********************************************************************** ***** * Declarations ************************************************************************ ****/ DeclareAlarm(AlarmActCyclic); DeclareResource(Res_CounterVar); DeclareTask(InitTask); DeclareTask(Loop); DeclareTask(Cyclic); /*********************************************************************** ***** * Global data ************************************************************************ ****/ unsigned char counter; int led_id; /*********************************************************************** ***** * Hooks (Remember to activate these in the ProOSEK configurator if desired!) ************************************************************************ ****/ char *connectString ="DEMO share"; /*********************************************************************** ***** * Tasks ************************************************************************ ****/ /*********************************************************************** ***** * InitTask * Initialize the system and terminate after activating Loop * Prio=1; Autostart=yes ************************************************************************ ****/ TASK(InitTask) { int i,j,key,bit,port,value[3]; unsigned short addr[16]; LptDetectPorts(i,addr,3); AlarmBaseType albase; InitGuiInternal(); LptInit(); led_id = LEDInit( 8 ); LEDS_INIT(); (void)GetAlarmBase(AlarmActCyclic, &albase); /* we assume that the ticksperbase is the number of ticks needed to reach * one (1) second. Also assumes that this value is lower or equal to the * amxallowed value. */ (void)SetRelAlarm(AlarmActCyclic,albase.ticksperbase ,albase.ticksperbase ); (void)ChainTask(Loop); } /*********************************************************************** ***** * Loop Task * Executes an infinite loop after activating Sensor * Prio=2; Autostart=no ************************************************************************ ****/ extern CRITICAL_SECTION cs; TASK(Loop) { volatile unsigned int dummy; unsigned char toggle = 0; while(1) { int dummy2 = 5443; for (dummy=0; dummy<3000000; dummy++) { dummy2 = dummy2%((dummy%20)+1); } (void)GetResource(Res_CounterVar); if (toggle == 0) toggle = 1; else toggle = 0; LEDSet( led_id, ((toggle<<7)|((counter) & 0x0f)) ); LEDS_SET(((toggle<<7)|((counter) & 0x0f))); (void)ReleaseResource(Res_CounterVar); } (void)TerminateTask(); } /*********************************************************************** ***** * Cyclic Task * Runs cyclicly activated by AlarmActCyclic * Prio=4; Autostart=no ************************************************************************ ****/ TASK(Cyclic) { (void)GetResource(Res_CounterVar); counter = ((counter+1) & 0x0f); LEDSet( led_id, counter ); LEDS_SET(counter); (void)ReleaseResource(Res_CounterVar); (void)TerminateTask(); }
Ich weiss nicht, was dieses OSEK sein soll, aber der direkte Zugriff auf LPT-Ports ist unter modernen Betriebsystem immer etwas problematisch. Bitte kläre doch erstmal, ob dein OSEK überhaupt für dein verwendetes Betriebsystem geeignet ist. Danach kannst du noch folgendes abklären: - BIOS Setting LPT-Modus sollte auf "Standard" stehen (Also kein ECP oder sonstiger DMA kram) - Standardbasisadresse des LPT1 ist 0x378. Sowohl BIOS als auch dein Programm sollten diese Einstellung irgendwo haben. - Laptops sind immer problematisch weil sie häufig entweder die Standardpotentiale (Spannung) haben oder nicht den vorgesehenen Strom liefern können. daher: LAPTOPs meiden.
Ja das mit dem Laptop hab ich jetzt auch eingesehn deswegen benutze ich wieder meinen alten PC da hab ich auch schon erfplgreich auf den LPT port über C++ undeien Tool zugreifen können!!! Ja OSEK ist das Betriebssytem! und es ist denk ich mal sehr gut geeingnet um ein LPT port anzusprechen das Wie ist aber nur die Frage!!! In der Simulation funktioniert es !!! nur die Hardware beschreibung des LPT für OSEK fehlt mir...!!!
Hallo, OSEK ist eine Art "Betriebssystem" für Mikrocontroller und nicht für PC es "kümmert" sich hauptsächlich um die Echtzeitfähigkeit. Da dieses "OSEK" aber bei einem Buch dabei war, ist es möglich, dass dies so angepasst ist, das es geht. Gruss Otto
Ich lese gerade eine Beschreibung von OSEK: "Besonderes Merkmal dieses Buches ist eine zeitlich unbegrenzte Demoversion eines OSEK-Betriebssystems auf CD für den Test auf Windowsrechnern." So ein Unsinn hab ich ja schon lange nicht mehr gelesen. Jedenfalls steht hier auch, das dieses OsekPro nur unter Windows 2000 und XP läuft...NT4 lass ich jetzt mal absichtlich unter den Tisch fallen. Wenn das immer noch nicht funktioniert, wirst du nicht drumrumkommen, meine BIOS-Tipps zu berücksichten.
OK Bios Einstellungen sind OK!!! Bin an der API dran !! Kennt jemand die OSek API??? wie man hardware ansteuert???LPT ??? da gibts Dieses OSEK COM kann das vlt die lösung sein!!! ein kollege meinte ich soll es mit Dispatcher Task versuchen die schnittstellen anzusprechen schön gesagt aber ohne sich in der api auszukennen hat man da keine chance kennt siche jemand mit der osek API gut aus???
mit diesem USB to LPT Umsetzer könnte es funktionieren: http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/index.html
ne das war ja net gefragt USB to LTP sondern ansprechen des LPT port in OSEK!! und ob sich jemand mit der api auskennt!!!
Im OSEK findest Du keine Treiber zum Ansprechen von Hardware. In dem Buch ist doch die API von OSEK erklärt. Mehr als dort erklärt wird gibt es nicht. Die Windows Simulation von ProOSEK ist mehr dazu gedacht mit einem speziellen Simulationsprogramm (dem OsekSimulation Gui) zusammenzuarbeiten. Dort kann man das "OSEK-System" mit simulierten Komponenten (z. B: LEDs DIP-Schalter usw.) verbinden und ein "echtes" System simulieren. Gruß Dirk
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.