Hallo ich habe einen Adapter mit MCP2221A und wenig bis keine Programmiererfahrung. Ich möchte mit VBA auf die Funktionen der DLL zugreifen. Kennt jemand einen Quellcode für VBA, an dem ich sehen kann, wie es geht? Grüße PS: Kann leider nichts zeigen. Momentan geht gerade wieder garnichts.
Bodo M. schrieb: > ich habe einen Adapter mit MCP2221A Das dürfte der hier sein: https://www.microchip.com/en-us/product/mcp2221a > Ich möchte mit VBA auf die Funktionen der DLL zugreifen. Du meinst vermutlich die hier: https://ww1.microchip.com/downloads/en/DeviceDoc/MCP2221DLL_2015_06_17.zip Da dürfte das hier für Dich vielleicht hilreich sein. https://learn.microsoft.com/en-us/office/client-developer/excel/how-to-access-dlls-in-excel#calling-dll-functions-and-commands-from-vba Da Du nicht mit einer .Net-Programmiersprache arbeitest, wirst Du die "unmanaged"-Variante der DLL verwenden müssen. Im Zip von Microchip sind Beispiele für den Gebrauch der "unmanage" DLL aus VB heraus zu finden, die wirst Du für Dein VBA entsprechend anpassen müssen. Warum ausgerechnet VBA? Weil Excel?
Danke für die Antwort Harald K. schrieb: > https://www.microchip.com/en-us/product/mcp2221a Genau. Ich möchte dann einen SI4844 steuern. Keine Hardware arbeitet heutzutage ohne Software. MC bekomme ich hin. PC-Programmierung ist schon schwieriger für mich. Ich will die ersten Versuche mit I2C und SI4844 mit Windows-PC machen. Sonst müßte ich einen MC brennen -> geht nicht -> Programm ändern - MC brennen -> u.s.w. Ich dachte eine Platine mit I2C und ein paar GPIO wäre gut. Da ich keine Programmierumgebungen habe, ist meine Wahl auf Python oder VBA gefallen. Excel ist nicht der Hauptgrund. Eher die leicht zu erstellenden Oberflächen. Msgbox und Listbox usw. Gruss B.
Bodo M. schrieb: > Ich will die ersten Versuche mit I2C und SI4844 mit Windows-PC machen. > Sonst müßte ich einen MC brennen -> geht nicht -> Programm ändern - MC > brennen -> u.s.w. Ja und? Die Zeiten von EPROM-Löschgeräten sind vorbei. Vielleicht ist wild "brennen -> geht nicht" die falsche Strategie. Benutze einen Debugger. Dann kannst du gucken, an welcher Stelle genau das Programm von dem geplanten Verlauf abweicht und dort korrigieren.
:
Bearbeitet durch User
Rainer W. schrieb: > Die Zeiten von EPROM-Löschgeräten sind vorbei. Ist klar. Ständig brennen ist aber auch nicht gut. Mal eben einen Wert ändern ist mit PC einfacher, denke ich. Rainer W. schrieb: > Benutze einen Debugger. Gute Idee. Z.B. Beispiel? Kosten soll es natürlich nichts bis fast nichts. Grüße
Bodo M. schrieb: > Da ich keine Programmierumgebungen habe, ist meine Wahl auf Python oder > VBA gefallen. Kann es sein, daß Du dann gar nicht VBA meinst? VBA ist "visual basic for applications", das ist die in Office-Produkte integrierte Macroprogrammiersprache. Die gibt es also als Bestandteil von Word, Excel und Co. Daneben gibt es Visual Basic, das nach 1998 zur .Net-Programmiersprache "VB.net" mutierte. Das wird auch aktiv weiterentwickelt und ist eine der von "Visual Studio" unterstützten Programmiersprachen. Und dann gibt es noch die Skriptsprache VBScript, die man mit dem Skriptinterpreter cscript.exe bzw. wscript.exe ausführen kann, aber die bietet gar keine Unterstützung für Programmieroberflächen. Was genau meinst Du also?
Harald K. schrieb: > Was genau meinst Du also? VBA - Ist bei Office dabei, kostet quasi nix und ich habe etliche Bücher. Harald K. schrieb: > Daneben gibt es Visual Basic, das nach 1998 zur .Net-Programmiersprache > "VB.net" mutierte. Das wird auch aktiv weiterentwickelt und ist eine der > von "Visual Studio" unterstützten Programmiersprachen. "VB.net" bzw. "Visual Studio" kann, so habe ich gelesen, in der Community-Version keine Serielle Schnittstelle. Kann sein, dass ich mich da getäuscht habe? Da kann man auch keine Oberflächen erstellen. Oder? Was ich gefunden habe, kostet alles richtig Geld und das ist es mir nicht wert. Grüße
Bodo M. schrieb: > "VB.net" bzw. "Visual Studio" kann, so habe ich gelesen, in der > Community-Version keine Serielle Schnittstelle. Kann sein, dass ich mich > da getäuscht habe? https://learn.microsoft.com/de-de/dotnet/visual-basic/developing-apps/programming/computer-resources/accessing-the-computer-s-ports > Was ich gefunden habe, kostet alles richtig Geld und das ist es mir > nicht wert. Warum nimmst Du denn überhaupt Windows? Da kostet vieles einfach Geld. Es ist wie im richtigen Leben. Entweder hast Du genug Grips, um das selber zu machen, oder Du hast genug Geld, um jemanden zu beauftragen. fchk
Frank K. schrieb: > Warum nimmst Du denn überhaupt Windows? Da kostet vieles einfach Geld. Linux installiere ich regelmäßig. Alles funktioniert immer sehr gut. Eine Weile. Dann ist stundenlanges lesen und forschen angesagt. Irgendwas geht immermal nicht. Frank K. schrieb: > Es ist wie im richtigen Leben. Entweder hast Du genug Grips, um das > selber zu machen, oder Du hast genug Geld, um jemanden zu beauftragen. Schöner Spruch. Ich bin dann für den ersten Fall, es dauert nur etwas länger. Die, die den Grips haben, haben ihn auch nicht mit dem Löffel gegessen. Grüße
Bodo M. schrieb: > "VB.net" bzw. "Visual Studio" kann, so habe ich gelesen, in der > Community-Version keine Serielle Schnittstelle. Wo nur liest Du solche Dinge?
Oben wurde der Link zur DLL schon eingefügt, unter VBA musst du jede Funktion separat bekannt machen, wie bei https://www.vba-tutorial.de/api/declare.htm Dann kannst Du die Funktionen ganz normal aus VBA aufrufen. In der ZIP gibt es Beispielcode, z.B. \Unmanaged\Example Code\MCP2221DLL-UM_VBExampleCode\MCP2221DLL-UM_VBExampleCode\Mosul1.vb - der DLL Importbereich ist anders, restlichen Code müsstest Du mit kleinen Abwandlungen übernehmen können. Unabhängig davon müsste es das MS Visual Studio in der Express Edition frei geben, mit der kannst Du auf DLLs zugreifen - Schnittstellenanbindung macht in diesem Falle die DLL. Wenn Du aber selbst auf die Schnittstellen zugreifen willst, kannst du auch in der Express natürlich "nativ" auf die Schnittstellen zugreifen (wenn ich nicht irre, ist bei mir schon eine Weile her).
Harald K. schrieb: > Wo nur liest Du solche Dinge? Im Internetz. Ich wollte die Stelle suchen, aber ich hab sie nicht gefunden. Andreas K. schrieb: > Unabhängig davon müsste es das MS Visual Studio in der Express Edition > frei geben, mit der kannst Du auf DLLs zugreifen - > Schnittstellenanbindung macht in diesem Falle die DLL. Ja, VS gibt es frei. Kann aber nicht auf Schnittstellen zugreifen. Logo. MS wird auch nichts anderes schreiben. Ich werde das nochmal mit den Beispielen von Microchip testen. Danke an alle Grüße Bodo
Bodo M. schrieb: > Ja, VS gibt es frei. Kann aber nicht auf Schnittstellen zugreifen. Logo. Das halte ich schlichtweg für Unfug. Warum sollte man das nicht können? https://learn.microsoft.com/en-us/dotnet/visual-basic/developing-apps/programming/computer-resources/how-to-receive-strings-from-serial-ports https://learn.microsoft.com/en-us/answers/questions/183729/reading-data-from-a-usb-port-using-vb-net-and-visu Könnte es sein, daß Du das mit VB6.0 und mscomm.ocx durcheinanderbringst?
Harald K. schrieb: > Könnte es sein, daß Du das mit VB6.0 und mscomm.ocx > durcheinanderbringst? Nein. Ich hatte eine Seite da stand Community, Proffessional und Enterprise. Community kostet nix, Proffessional ca. 1000 im Jahr(Abo), Enterprise k.A. (keine Ahnung). Und an dieser Stelle war VS raus. VB und mscomm.ocx war es nicht. Harald K. schrieb: > Das halte ich schlichtweg für Unfug. Warum sollte man das nicht können? Ok OK. Da hast du Recht. Das reine VS kann das evtl. nicht. Das fremde DLLs das nicht können, stand da nicht. Inzwischen habe ich eine DLL, die die Seriellen Schnittstellen unter VBA (auf meinem Niveau) ansprechen kann. Mein MCP2221 hat aber kein DTR und RTS. Gruß Bodo
Bodo M. schrieb: > Nein. Ich hatte eine Seite da stand Community, Proffessional und > Enterprise. > Community kostet nix, Proffessional ca. 1000 im Jahr(Abo), Enterprise > k.A. (keine Ahnung). Und an dieser Stelle war VS raus. Das meine ich nicht. Sondern Deine Behauptung, daß die "Community"-Edition nicht mit seriellen Schnittstellen kommunizieren könne.
Harald K. schrieb: > Das meine ich nicht. Sondern Deine Behauptung, daß die > "Community"-Edition nicht mit seriellen Schnittstellen kommunizieren > könne. Das war keine Behauptung, ich lasse mich gern bekehren. Vielleicht stand da auch (sinngemäß) "kein Zugriff auf Ports". Falschverstanden. Ich bin schon am neuerlichen Testen von VS. Sieht nur alles ganz schön kompliziert aus.
Bodo M. schrieb: > Sieht nur alles ganz schön > kompliziert aus. Nun, welche "Entwicklungsumgebung" hast Du denn bislang für Dein VBA verwendet? Den tollen VBA-Editor, der mit Excel & Co. mitgeliefert wird?
Eventuell haben die Pro/Enterprise Versionen zusätzlich schöne Bildchen, die man reinziehen kann und dann nur die Events, etc. ausprogrammieren muss. Zu Fuss wird es allemal gehen.
Harald K. schrieb: > Den tollen VBA-Editor, der mit Excel & Co. mitgeliefert wird? Ja. Gibt es da was Schöneres? Andreas K. schrieb: > Eventuell haben die Pro/Enterprise Versionen zusätzlich schöne Bildchen, > die man reinziehen kann und dann nur die Events, etc. ausprogrammieren > muss. Zu Fuss wird es allemal gehen. Zu Fuss heißt, man hat Ahnung. Ich denke mal der VBA Editor ist genau mein Niveau. Einbinden klappt. Ich mache "DevCount" und solche einfachen Dinge. Da bekommen nur keine Werte zurück. Ich werde jetzt mal andere Dinge testen. Aber da muß ich erstmal lesen. Deswegen suchte ich ja VBA-Beispiele. Gruß Bodo
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.