Serielle Schnittstelle ansprechen



  • Tach auch............
    ich will testweise mal ne LED über die Com1 ansprechen...
    Hab hiern Kabel Nullmodem Hama
    mit Belegung: 1,4;2,3;3,2;4,1;5,5;7,8;8,7;;
    egal...

    HANDLE hCom = CreateFile( "Com1:", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL);
        char lpByte[12] = "1";
        int i =1,h=1;
        float len = 0.000001;
        DWORD dwBytesWritten;
        //while(true)
        //{
        WriteFile(hCom, lpByte, len, &dwBytesWritten, NULL);
        Button1->Caption=dwBytesWritten;
        //}
     CloseHandle(hCom);
    

    Problem is, egal, an welche pins ich anschließe 1+x... die LAmpe leuchtet trotzdem... auch wenn ich lpByte eine andere Zahl gebe,immer leuchtet 1+2 heller als 1 und die Anderen PIns.
    Allerdings funktioniert es mit dem an + aus gehen...
    ich hab nen Verdacht... die Serielle Schnitstelle... hat doch keine einzelnen Datenpins wie die Parallele. kann man des irgendwie anders regeln? (ich glaub, ich hab gelesen, inp und outp werden nich mehr von BCB6 unterstützt...)
    oder komme ich nich um die Parallelschnittstelle herum...

    hoffe, ihr habt antworten auf meine Fragen...

    gruß Elefunty



  • http://de.wikipedia.org/wiki/EIA-232

    Es gibt einzelne Datenpins welche man ziehen oder lösen kann. Grundsätzlich sind aber die Datenleitungen seriell. Das heisst, da hüpfen von nem Bytes 8 Bits nach einander als Zusätnde raus. Je nach Baudrate heisst das also wenn du 0x01 da raus schreibst, dass nacheinander 0, 0, 0, 0, 0, 0, 0, 1 ausgegeben wird. Dazu noch einige Steuerpulse (Start/Stop-Bits) Einfacher wäre es für dich die parallelschnittstelle zu verwenden. Die rbaucht erheblich weniger elektronischen aufwand. Die Serielle hier braucht nämlich mindestens einen MAX232 um 5-V Pegel zu kriegn und dann n och ein schieberegister um was vernünftiges mit dem Datenstrom anfangen zu können (74HC595 oder so)

    Einfach wäre es grundsätzlich die Handshake-Signale wie DTS, etc. zu verwenden (siehe http://msdn.microsoft.com/library/en-us/devio/base/escapecommfunction.asp ) Die sind statisch und nicht seriell. Hab da noch irgendwo code rumfliegen, der das TX-Sginal statisch setzen kann... find den aber grad nicht. Eventuell SetCommBreak oder sowas... ich such mal irgendwann danach.

    Ansonsten noch nen Tip eines Elektronikers: Beachte, dass die Spannungen am COM-Port NICHT 5V sind! (So vonwegen Vorwiderstand bei LED und so)



  • Also hat sich meine Befürchtung bestätigt... 😞
    und er sendet wirklich alles über einen Pin...
    dann werde ich versuchen, damit wenigstens mit meim Läptop zu kommunizieren...
    und mirn Parallelkabel zu besorgen...
    den Wikiartikel hatte ich auch gerade gelesen...
    und das mim Handshake hab ich nich kapiert.. 😕
    und die Parallele Schnittstelle sendet die bits über 8 Pins und ich müsste den Code so schreiben s.o. nur mit LPT1.
    und bei ausgabe 1 (integerwert) Leuchtet dann die LED wenn an Pin 2 und Pin 18-25 angeschlossen ist? 🙄
    werden beim senden (seriell/Parallel) automatisch in ASCII Codiert und beim Empangen wieder zurück?

    Elefunty



  • servus, willst du die Dioden direkt an den Port hängen? Wenn ja, ist das nicht sehr ungesund? Mit wieviel darf man so einen Pin den überhaupt belasten? Wenns 30-70mA sind, dann würds gehen :), ansonsten wäre da ein Transistor hilfreich? Würd ich mir so vorstellen... net das du deinen Port zerstörst 🙂



  • 30-70mA für LEDs? was betreibst du denn da? If ist üblicherweise bei 10-12mA... alles andere ist übertrieben. Und die treibt die Parallele Schnittstelle durchaus. Allerdings empfiehlt es sich dennoch die Dinger mit OPtokopplern abzutrennen. (Schäden am PC können fies sein)



  • naja, bei denen die ich verwende hab ich durch spannungsabfalls etc teilweise 40 mA, keine AHnung was das für welche sind... aber optokoppler sind ziemlich anfällig, wären aber wohl die sicherste lösung



  • blazer1981 schrieb:

    naja, bei denen die ich verwende hab ich durch spannungsabfalls etc teilweise 40 mA, keine AHnung was das für welche sind...

    Wie um himmels willen beschlatest du die denn? Ich hoffe doch mit Vorwiderstand?! Es gibt natürlich Hochleistungs LEDs aber normale SignalLEDs sind eigentlich mit nem Spannungsabfall um rund 2V und 10mA (daraus ergibt sich der übliche Daumenregelvorwiderstand von rund 300 Ohm) Das gilt natürlich aber nur bei Dauerbelastung. Bei Puls/Pausenansteuerung kanns durchaus zeitweise mehr Strom sein. Hat aber keine Auswirkungen auf den Average. Ausser natürlich man will das Teil zerstören.

    blazer1981 schrieb:

    aber optokoppler sind ziemlich anfällig, wären aber wohl die sicherste lösung

    Anfällig? Worauf?


Log in to reply