mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Igor Plug + VB6 ???


Autor: Lightning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Wie muss ich die IgorPlug DLL verwenden damit was
beim AVR ankommt ???

Ich meine von der Initialisierung der Ports bis hin zum
senden eines Bytes ??

Habe heute schon den ganzen Tag rumprobiert aber es will
einfach nicht funktionieren. Grund --> ???

Falls mir jemand helfen kann/will wäre
ich sehr Dankbar.

Mfg. Lightning

Autor: Lightning (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier die HTML-Datei
die beschreiben soll wie man
die DLL ansteuert aber
ich werd daraus nicht schlau.

Kann mir bitte jemand Erläuterungen
dazu geben ???

Bin dankbar für alle Antworten.

~ Lightning

Autor: Lightning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja hab ich vergessen....

Ich arbeite mit VisualBasic 6.0

Naja hätte man ja auch aus dem Titel
lesen können :)

~ Lightning

Autor: Frank Simon (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, vielleicht hilft dir dieser Thread:
http://www.mikrocontroller.net/forum/read-1-141415.html#new
Ich hab das Projekt an den Nagel gehängt, weil die Übertragungsraten
einfach ernüchternd waren. Das VBA-Makro (Excel), mit dem ich das
untersucht habe, hängt jetzt hier an, muss eigentlich in VB6 genauso
gehen. Mein Prog. ist unkommentiert, zeigt aber wie man schreibt und
liest.
Viel Erfolg!

Autor: Lightning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Simon Frank

Erstmal Danke vielen Dank das Makro von dir hat mir sehr viel
weitergeholfen.
Das is ja eigentlich garnicht so kompliziert wie ich
gedacht habe. :-)

Ach ja der Link zm anderen Thread is auch nich schlecht danke.

Jetzt aber nur noch eine kleine Frage:
Wenn man sich das html File oben ansieht un man klickt da z.B auf
DoSetDataPortDirection, stehen da immer 2 Funktionen z.B.:
----------------------------------------------------------------
function DoSetDataPortDirection(DirectionByte:byte):integer
----------
...und...
----------
function DoSetDataPortDirections(DirectionByteB, DirectionByteC,
DirectionByteD, UsedPorts:byte):integer
----------------------------------------------------------------

Was muss ich da genau tun/eingeben um z.B. wie in diesem Beispiel die
Port Direction Register (DDRx) per VB zu setzten ???

Die doppelbefehle gibts auch noch bei:
~ DoGetDataPortDirection
~ DoSetOutDataPort
~ DoGetOutDataPort
~ DoGetInDataPort

Ich weiss schon wie man das per VB aufruft und so, aber
ich habe keine Ahnung was man von dem zuerst senden muss und
was man bei den Variablen da eingeben muss.

Wie weiter oben schon erwähnt,
Bin dankbar für jede Antwort :)

Autor: Lightning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag: "Ich muss nur wissen wie man das ganze verwenden muss" (Was
man da alles eingeben,... muss)

~ Lightning

Autor: Lightning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss nur wissen für was die erste und für was die zweite funktion
ist.
Und wie man die im programm einsetzt.

Mfg. Lightning

Autor: Frank Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, die Funktionen schreiben bzw. lesen bestimmte Register im uC. Über
deren Bedeutung liest du am besten im AVR-Tutorial auf dieser Website.
Die Register heißen DDRx, PORTx und PINx (x=B,C,D) und sind für Ein-
und Ausgabe an den drei Ports des uC zuständig. In den Igor-Routinen
geht es darum, entweder für einen oder gleich für alle drei Ports das
jeweilige Register zu setzen/lesen. Viel Erfolg!

Autor: Lightning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank Simon

Aho ok soweit sogut, aber bei der 1.Funktion steht z.B. nur
"(DirectionByte:byte):integer" bei welchem Port werden dann
hier die Directions gesetzt ???

Und für was ist bei der 2. Funktion "UsedPorts" ??

Mfg. Lightning

Autor: Frank Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
so stehts da:
function DoSetDataPortDirection(DirectionByte:byte):integer;  stdcall;
function DoSetDataPortDirections(DirectionByteB, DirectionByteC,
DirectionByteD, UsedPorts:byte):integer; stdcall;

    Function sets transfer direction of microcontroller data pins
(D0-D7).
Parameters
   DirectionByte
        [in] Byte which bits represents direction of given
microcontroller pin. Bit value 1 represents output and bit value 0
represents input.
   UsedPorts
        [out] bit mask: which ports to set (combination of : 1=PortB,
2=PortC, 4=PortD).

UsedPorts wird bitweise kodiert. Das musst du so verstehen: Wenn du
DDRB,DDRC und DDRD in einem Rutsch beschreiben willst, musst du für
UsedPorts den Wert 7 übergeben, denn 7 = 1+2+4.
mfg Frank

Autor: Lightning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank Simon

Achso funktioniert das mit den UsedPorts, aber
aus welchem grund gibt es denn dann 2 Funktionen ??

Nochmals danke für die Hilfe.

Mfg. Lightning

Autor: Frank Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die eine ist, wenn du nur ein Portregister ändern willst, z.B. wenn du
sowieso nur Port B benutzt. Dann setzt zu einmal das DDRB-Register.
Wenn du dann z.B. deine Ampel-Leds von rot auf grün gehen lässt, gibst
du nur einen neuen Wert nach PORTB aus.
Er hat das so programmiert, weil beim USB eben nur alle soundsoviele
Millisekunden ein Paket geschickt wird. Mit den Mehrfachroutinen können
eben in der gleichen Zeit dreimal soviele Nutzdaten fließen.
mfg Frank

Autor: Lightning (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank Simon

Hab jetzt alles mal schnell getestet
und es funktioniert danke vielen dank für die hilfe und alles !!!

Mfg. Lightning

Autor: Tobias R. (wildcard)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,
habe den Hardware Teil hinter mir, möchte von einem AVR zu einem IGOR
Avr senden und dann via usb zum PC und die Daten anzeigen lassen.
Mit Igors Testprogramm funktioniert dies auch, dh. die Daten werden
korrekt empfangen und im "Terminal" Bereich runtergerasselt...

Wenn ich das nun aus einem C Programm selbst versuche schaffe ich es
nur die Baudrate richtig einzustellen, danach kommt aus dem Lesebuffer
kein einziges Zeichen zurück...

Sieht jemand mein Problem?

http://mandrill.fuxx0r.net/c++/paste:5298 <- hübsche Formatierung

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.