MCP2221A VBA

Gast #7556001
Lesenswert?

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.

#7556010
Lesenswert?

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?

Gast #7556035
Lesenswert?

Danke für die Antwort Harald K. schrieb im Beitrag #7556010:

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.

#7556038
Lesenswert?

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.

#7556064
Lesenswert?

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?

Gast #7556080
Lesenswert?

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

#7556106
Lesenswert?

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

Gast #7556128
Lesenswert?

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

#7556160
Lesenswert?

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).

Gast #7556195
Lesenswert?

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

#7556198
Lesenswert?

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?

Gast #7556236
Lesenswert?

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

Gast #7556245
Lesenswert?

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.

Gast #7556256
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren