-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: I2C-Bus an Ser. Port mit C++

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.02.2005
    Beiträge
    6

    I2C-Bus an Ser. Port mit C++

    Anzeige

    Hallo zusammen,

    ich habe mir einen I2C Bus Adapter zusammengebaut und möchte mich mit einer externen Hardware unterhalten.
    Nur habe ich bisher nur VB Programme gefunden. Mein Projekt beinhaltet bereits eine menge C Quellcode und den möchte ich nicht unschreiben müssen.
    Da ich nun nicht die nötwendige Zeit habe mich in das Telegrammbild des I2C Busses einzuarbeiten, möchte ich die Frage an euch alle richten ob jemand soetwas bereits fertig hat und bereit ist mir das zukommen zu lassen?
    Ich meine eine Funktion die das Senden vorbereitet (Port bei Windows frei machen) und eine die zum absenden der Telegramme verwendet werden kann.

    Für eure Hinweise währe ich sehr dankbar.

    MfG
    Sebatian

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    16.02.2005
    Beiträge
    6
    Hallo zusammen,

    wo sind die Experten? Laßt mich bitte nicht im Regen stehen?!

    MfG
    Sebastian

  3. #3
    Gast
    Sorry... könntest du dein Problem noch ein bisschen näher beschreiben? Was für einen Adapter hast du gebaut? I²C auf was?
    Von wo aus willst du steuern? Vom PC. Oder?
    Und welche externe Hardware willst du über den I²C Bus ansteuern?

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    11.09.2004
    Ort
    Fulda
    Alter
    34
    Beiträge
    35
    Sorry, war nicht eingelogged.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    08.05.2004
    Alter
    31
    Beiträge
    25
    Das meiste hat er doch geschrieben: Er hat einen Adapter von serieller SChnittstelle auf I²C gebastelt. Jetzt sucht er Software oder Programmschnippsel in C, die ihm das Senden von Daten über die serielle Schnittstelle ermöglichen.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    11.09.2004
    Ort
    Fulda
    Alter
    34
    Beiträge
    35
    Echt? Wo hat er denn was von serieller Schnittstelle geschrieben? Aber egal, das ist hier ja nicht das Thema.

    Mit der seriellen Schnittstelle unter Windows kenne ich mich leider nicht so aus.

  7. #7
    Gast
    Das ansprechen des COMPorts unter c ist eigentlich recht einfach.

    Code:
    //===========================================================================//
    //  Copyright 01.05 Michael Sonst für Systeme Helmholz GmbH, Weisendorf      //
    //                                                                           //
    //  Autor        :  Michael Sonst                                            //
    //  Version      :  1.1                                                      //
    //  Erstellt am  :  21.01.2005                                               //
    //                                                                           //
    //===========================================================================//
    s8 IsWinNT()
    {
      OSVERSIONINFO OSinfo;
      OSinfo.dwOSVersionInfoSize = sizeof(OSinfo);
      GetVersionEx(&OSinfo);
      return(OSinfo.dwPlatformId == VER_PLATFORM_WIN32_NT);
    }
    //---------------------------------------------------------------------------
    void __fastcall EnumComPorts(TComboBox* combobox)
    {
      if(combobox==NULL)return;
      combobox->Clear();
    
      s8 Name[16];
      HANDLE hCom;
      u8 maxport;
    
      if(IsWinNT())maxport=99;
      else maxport=9;
    
      for(s32 i=0; i<maxport; i++){
        Name[0] = '\0';
        strcat(Name, "COM");  strcat(Name, IntToStr(i).c_str());
        hCom = CreateFile ( Name,                                     //  name of comport
                    (GENERIC_READ | GENERIC_WRITE),                   //  access mode
                    0,                                                //  only exclusive open a comport
                    NULL,                                             //  security none
                    OPEN_EXISTING,                                    //  only if exist
                    FILE_FLAG_OVERLAPPED,                             //  open with overlapped structure  FILE_ATTRIBUTE_NORMAL
                    0);                                               //  always zero
    
        if(hCom != INVALID_HANDLE_VALUE){
          combobox->AddItem("COM"+IntToStr(i), (TObject*)i);  //abuse TObject
          CloseHandle(hCom);
        }
      }
    }
    Danach kannst du den Filedeskriptor wie eine Datei verwenden.
    Schau dir doch mal die im quellcode verfügbaren Komponenten an.
    (www.torry.com)

    Gruss
    Michael

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.01.2004
    Ort
    Erlangen, Bayern
    Alter
    35
    Beiträge
    253
    Sorry war nicht eingeloggt...
    Schau dich unter anderem in der MSDN nach GetCommModemStatus und EscapeCommFunction um. Damit kannst du die Signale am COM lesen und schreiben.

    ps: www.torry.com war falsch meinte http://www.torry.net.

    Gruss
    Michael

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    16.02.2005
    Beiträge
    6
    Wie bereits richtig vermutet wurde möchte ich die Serielle Schnittstelle nutzen. Der Adapter stammt von Roboter Hardware. Auf eine Serielle Schmittstelle zugreifen, das bekomme ich ja sogar hin, nur klappt das mit den Pegeln nicht. Sprich das Bitmuster zu erzeugen, welches den I2C Bus zu darstellt.

    Aber soweit schon mal vielen dank.

    Hat den jemand etwas, was bereits fertig ist?
    Wenn ich einen Baustein verwende der an den Bus gehangen wird und 8 Ausgänge bereit stellt. Welche maximale Frequenz kann ich an einem der Ausgänge erzeugen? Und welchen Baustein würdet Ihr empfehlen?

    MfG
    Sebastian

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    16.02.2005
    Beiträge
    6
    Bitte helft mir nocheinmal auf die Sprünge...

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •