Willkommen Gast. Bitte einloggen oder registrieren.
April 1, 2025, 23:24:00
Übersicht Ungelesene Beiträge auflisten Hilfe Suche Spiele Mitgliederkarte Kalender Login Registrieren

Schnellsuche
+  MODDING-FAQ FORUM
|-+  LCDs und -Software
| |-+  LCDs Allgemein (Moderator: xonom)
| | |-+  LCD Ansteuerung
  « vorheriges nächstes »
0 Mitglieder und 0 Gäste betrachten dieses Thema.
Seiten: [1] nach unten Drucken
Autor Thema: LCD Ansteuerung  (Gelesen 6900 mal)
Mr.Vercetti
Kathodenjünger

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 91


Dies und Das


Profil anzeigen WWW
LCD Ansteuerung
« am: Juni 22, 2009, 15:30:29 »

Ich mach gerade in der Schule mit einem Freund ein Projekt und zwar eine Software um LCD´s anzusteuern.
Das ganze in C#
Jetzt würde ich gerne auch das USB-Low-Cost Interface ansteuern.

Das Problem ist das ich nicht weiß wie ich die USB-LCD.dll in C# umsetzte.
Kann mir vll jemand dabei helfen?
Gespeichert


hackspider
Wakü-Poseidon

*

Karma: +4/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 412



Profil anzeigen
Re: LCD Ansteuerung
« Antwort #1 am: Juni 22, 2009, 16:22:59 »

Hi,

http://sourceforge.net/projects/libusbdotnet/

damit kannst du auf den USB-Port zugreifen, allerdings müsste man dann die Methoden der USB-DLL neu implementieren.

Besser ist aber glaube ich wenn du die Methoden der USB-LCD.dll mittels DLLImport läds so wie hier:
http://msdn.microsoft.com/de-d...y/cc431203.aspx

Gruß hackspider
Gespeichert

Mr.Vercetti
Kathodenjünger

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 91


Dies und Das


Profil anzeigen WWW
Re: LCD Ansteuerung
« Antwort #2 am: Juni 22, 2009, 22:13:22 »

ich habs versucht zu importieren aber es kommt dieser fehler:
"Das DllImport-Attribut ist für diesen Deklarationstyp ungültig. Es ist nur für method-Deklarationen gültig."
Was muss da genau hin?
Gespeichert


hackspider
Wakü-Poseidon

*

Karma: +4/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 412



Profil anzeigen
Re: LCD Ansteuerung
« Antwort #3 am: Juni 22, 2009, 23:03:56 »

Hi,

hatte grad en paar Probleme um das nachzuvollziehen (x64 x86 Problematik).

Aber nachdem ich mir eine x64 USB-LCD.dll kompiliert hatte ging das ohne Probleme:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace DLLImport
{
    class Program
    {
        [DllImport("USB_LCD.dll")]
        private static extern short USB_LCD_Connect();


        static void Main(string[] args)
        {
            int x = USB_LCD_Connect();
            Console.WriteLine(x.ToString());
            Console.ReadKey();
        }
    }
}


Gruß hackspider
Gespeichert

Mr.Vercetti
Kathodenjünger

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 91


Dies und Das


Profil anzeigen WWW
Re: LCD Ansteuerung
« Antwort #4 am: Juni 23, 2009, 08:17:59 »

thx jetzt gehts, habs ausserhalb der Klasse gehabt deshalb ging es nicht.

Jetzt noch ne frage zu den einzellnen Methoden.

Das ist klar.
short _stdcall USB_LCD_Connect (void)

Was muss hie genau übergeben werden?
short _stdcall USB_LCD_Init
und
short _stdcall USB_LCD_Command
und
short _stdcall USB_LCD_Data

was macht die variable short LCD genau?

Und ich hab diese Problem
Der Typ USB_Test.Form1 der Assembly USB_Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null konnte nicht geladen werden, da die Methode USB_LCD_Data keine Implementierung (keine RVA) hat.

Sorry raffs ncoh net so ganz (will ich aber  Grin Grin )


« Letzte Änderung: Juni 23, 2009, 08:30:01 von Mr.Vercetti » Gespeichert


hackspider
Wakü-Poseidon

*

Karma: +4/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 412



Profil anzeigen
Re: LCD Ansteuerung
« Antwort #5 am: Juni 23, 2009, 18:49:41 »

Hi,

erstmal zu deiner Frage wegen dem LCD Parameter, das steht doch ziehmlich deutlich in der Readme datei drinn:

Code:
The argument "LCD" represents the controller-number;
For one-controller-LCDs it can be set to 0 or 1.

Es gibt nur wenige LCDs die mehr als einen Controller haben, es gab mal ein 4x27 CLCD bei Pollin, bei dem obere und untere Hälfte getrennt angesteuert wurden. Aber ansonsten tauchen 2 Controller nur bei sehr großen (4x40) LCDs auf. --> Kannste für "normale" LCDs auf 0 setzten.

So jetzt mal zu den Parametern der Init Funktion:
Um das wirklich zu verstehen solltest du dir Seite 5 (Control and Display Command) und Seite 7 (Initializing by Instruction) dieses PDFs mal genauer anschauen.

Kurz zusammengefasst:

lines = 1 Zeiliges oder Mehrzeiliges LCD (mit N im PDF gekennzeichnet)
font = 5x7 Zeichensatz (F im PDF)
increase = afair ob der Curser von Hand oder automatisch erhöht wird (I/D im PDF)
shift = shift off/on (S im PDF)

mit C_on und B_on kann man den Den Cursor und das Blinking de/aktivieren (DISPLAY ON/OFF Command)

mit D_shift und R_Shift werden die Bits S/C und R/L im SHIFT Command gesetzt.

um diese ganzen Settings zu verstehen, würde ich dir dringest empfehlen die Datenblätter genauer zu studieren, dann verstehst du auch was LCD_Command und LCD_Data macht.
Wenn du allerdings, das ganze nur benutzen möchtest, würde ich dir Vorschlagen mal nachzuschauen was die fertigen Libraries (z.B. die von Peter Fleury) an Attributen übergeben.

Was den Fehler angeht, den du bekommst: scheint so als wäre da irgendwas bei der Definition/Aufruf der USB_LCD_Data Funktion schief gegangen.

Gruß hackspider
Gespeichert

Mr.Vercetti
Kathodenjünger

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 91


Dies und Das


Profil anzeigen WWW
Re: LCD Ansteuerung
« Antwort #6 am: Juni 23, 2009, 20:18:43 »

thx
dann geh ich mal ans lesen
Gespeichert


Seiten: [1] nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Einloggen mit Benutzername, Passwort und Sitzungslänge      

Powered by MySQL Powered by PHP
eXTReMe Tracker
Seite erstellt in 0.013 Sekunden mit 16 Zugriffen.
© 2001-2022 MODDING-FAQ FORUM | SMF
Alle Rechte vorbehalten.
Prüfe XHTML 1.0! Prüfe CSS!