Forum: PC-Programmierung Spruts USB4All und Visual Basic 2005


von Dller (Gast)


Lesenswert?

Hallo Leute

Beschäftige mich gerade mit dem USB4All von Sprut. Habe aber folgendes 
Problem: Ich kann die ADC Werte nicht einlesen. Es kommt immer nur 0 an.
Hier mal der Code:

    Public Function ReadAN4() As Integer
        'Öffne Port
        MPUSB_Whandler = _MPUSBOpen(0, "vid_04d8&pid_ff0b", "\MCHP_EP1", 
0, 0)
        MPUSB_Rhandler = _MPUSBOpen(0, "vid_04d8&pid_ff0b", "\MCHP_EP1", 
1, 0)
        'Lösche alle Buffer
        MPUSB_WLength = 4
        InBuf(0) = 0
        InBuf(1) = 0
        InBuf(2) = 0
        InBuf(3) = 0
        MPUSB_RLength = 0
        'Schreibe Daten raus
        OutBuf(0) = &H51    'ADC System
        OutBuf(1) = 1       'init
        OutBuf(2) = 5       'AN0..AN4
        OutBuf(3) = 0       'ref = VCC und VSS
        _MPUSBWrite(MPUSB_Whandler, OutBuf(0), 4, MPUSB_WLength, 100)
        OutBuf(0) = &H51    'ADC System
        OutBuf(1) = 0       'Festlegen Von
        OutBuf(2) = 4       'AN4
        _MPUSBWrite(MPUSB_Whandler, OutBuf(0), 3, MPUSB_WLength, 100)
        OutBuf(0) = &H51    'ADC System
        OutBuf(1) = 3       'ADC lesen
        _MPUSBWrite(MPUSB_Whandler, OutBuf(0), 2, MPUSB_WLength, 100)
        'Empfange Daten
        _MPUSBRead(MPUSB_Rhandler, InBuf(0), 4, MPUSB_RLength, 100)
        ReadAN4 = (InBuf(3) * 256 + InBuf(2))
        'Schliese Port
        _MPUSBClose(MPUSB_Whandler)
        _MPUSBClose(MPUSB_Rhandler)
    End Function

Hat sich von euch schon jemand damit beschäftigt (USB4ALL) ??

von Dller (Gast)


Lesenswert?

OK einen Fehler habe ich gefunden (bekommen):

        OutBuf(0) = &H51    'ADC System
        OutBuf(1) = 0       'Festlegen Von
        OutBuf(2) = 4       'AN4

muss

        OutBuf(0) = &H51    'ADC System
        OutBuf(1) = 2       'Festlegen Von
        OutBuf(2) = 4       'AN4
heissen.


Trotzdem bekomme ich:

Inbuf(0) = 81  -> Passt
Inbuf(1) = 1   -> Sollte 3 sein
inbuf(2) + inbuf(3) -> Irgendwelche Werte, nur nicht das was hinkommt.

Hat jemand auch schon mal so ein Phänomän gehabt??

von Dller (Gast)


Lesenswert?

Habe mein Problem gelöst. Da es aber keine Interesse daran gibt, werde 
ich aber auch nicht die Lösung hierfür posten.

von juppi (Gast)


Lesenswert?

Habe auf Sprut jetzt nicht alles durchgelesen.

Kann man dieses Teil unter VB.Net ansprechen.
Minimal  8 Ausgänge
         8 Eingänge
         1 ADC
         1 PWM


Gruß

von Dller (Gast)


Lesenswert?

Firmwareaktualisierung:
  Mit Bootloader
  funktioniert
Stromversorgung:
  Bus-powered (max. 100mA)

nötige externe Bauelemente:
  1 Quarz, 4 Keramikkondensatoren, eine Miniaturdrossel
digitale IO-Ports:   max. 19
  TTL-Pegel, Output max 20mA   funktioniert
ADC:   5 Kanäle   10 Bit   funktioniert
RS232:   1 x   300..115000 Baud   funktioniert
I2C:   1 x
  Master-Mode, 7-Bit,  100/400/1000kHz
  funktioniert
Microwire-Bus:   1 x
  187 kHz ... 12 MHz
  noch nicht einsetzbar
PWM-Ausgänge:   2 x
  max. 10 Bit Auflösung, 3kHz ... 480kHz   funktioniert
interner Datenspeicher (EEPROM):
  192 Byte   funktioniert
LCD-Anschluss:   2 x   jeweils bis 2x40 oder 4x20 Zeichen mit 
HD44780-Controller   nur 2- oder 4-zeilig funktioniert
Schrittmotoranschluss:   2 x ABCD-Phasen
  4 Hz..1000 Hz  Halbschritt/Vollschritt   funktioniert

  4 x L297-Interface
  4 Hz..1000 Hz   funktioniert
Frequenzmesser:
  1 x
  Fmax = 50 MHz
5 Dezimalstellen genau
beste Auflösung: 10 Hz


Mitlerweile habe ich es geschaft, es unter VB.net (und höher) 
anzusprechen

von juppi (Gast)


Lesenswert?

Für viele Modellsteuerungen anwendbar und völlig ausreichend.
werde mal bischen Nachlesen.

Hast du für Vb.net eine DLL( selbst geschrieben)

Stells rein.

Gruß

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
Noch kein Account? Hier anmelden.