"inp" fkt nicht wie ich will



  • hallo

    ich habe ein problem

    ich weiß wie ich mit hilfe von c++ die lpt schnitstellen pin weise ansprechen kann
    outp(0x378,1);
    das klapt auch wuderbar aber wenn ich nun die schnittstellen einlesen will, für ein taster oder so dann geht das nicht

    ich habe den quelltext abgetippt da mein test rechner kein netzwerk hat
    win 98 borland c++ builder 5.0
    habs auch mit freeport versucht, aber ohne erfolg

    //----------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include <conio.h>
    #define LPT 0x378
    #include "Unit1.h"
    //----------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    
    void outp(unsigned int portadr, unsigned char value)
    {
     _asm mov edx, portadr
     _asm mov al, value
     _asm out dx,al
    }
    //===============================================================
    unsigned char inp(unsigned int portadr)
    {
     unsigned char value;
     _asm mov edx,portadr
     _asm in al,dx
     _asm mov value,al
    return(value);
    }
    
    //------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* owner)
          :: TForm(owner)
    {
    }
    //------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     outp(0x378,0); /* mit oder ohne outp es tut sich nicht außer das status mit "0" ist und ohne 4 */
    
    int status;
    status=inp(0x378);
    Edit2->Text=IntToStr(status);
    if(status==1)
     {
      edt_status->Text="online";
     }
     else
      {
       edt_status->Text="offline";
      }
    }
    

    }
    [cpp]

    also ich lege 5v gleichspannung an den pin d2 mit einen 500 ohm wiedersatand den minus pol an einen der grn

    aber er zeigt mir keine veränderrung des "status" er gibt immer nur das wieder was gerade der outp ist
    ohne outp gibt er 4 wieder da der pin anscheinend gleich angesteuert wird, wenn ich mit outp einen anderen pin ansteuerre gibt er mir den wert wieder, aber nie den den ich von außen anlege

    kann man das überhaupt über inp so wie ich das mache, und gehen die datenleitungen auch als eingänge, muss man da vieleicht sagen das er die als eingänge benutzen soll oder muss man die anderen pins benutzen die für den papier zustand da sind.

    brauche eure hilfe 🙄

    guten leitwert flo


Anmelden zum Antworten