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
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
Ach ja hab ich vergessen.... Ich arbeite mit VisualBasic 6.0 Naja hätte man ja auch aus dem Titel lesen können :) ~ Lightning
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!
@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 :)
Nachtrag: "Ich muss nur wissen wie man das ganze verwenden muss" (Was man da alles eingeben,... muss) ~ Lightning
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
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!
@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
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
@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
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
@Frank Simon Hab jetzt alles mal schnell getestet und es funktioniert danke vielen dank für die hilfe und alles !!! Mfg. Lightning
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
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.