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