AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi PicoScope 2000 Signalgenerator [gelöst]
Thema durchsuchen
Ansicht
Themen-Optionen

PicoScope 2000 Signalgenerator [gelöst]

Ein Thema von nuclearping · begonnen am 3. Mär 2011 · letzter Beitrag vom 3. Mär 2011
Antwort Antwort
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#1

AW: PicoScope 2000 Signalgenerator

  Alt 3. Mär 2011, 09:13
Du hast den c Typen float mit double übersetzt. Bist du dir sicher dass das stimmt? float hat normalerweise nur 4 Bytes, double jedoch 8.
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: PicoScope 2000 Signalgenerator

  Alt 3. Mär 2011, 09:55
Vielen dank für die Rückmeldungen.

In den Beispielen aus dem SDK wird immer das Handle überprüft.
Dann würde ich Testhalber den Erwerb des Handles und den Aufruf der Funktion entzerren und z.B. hinter 2 Knöpfe legen
Das Handle passt. Wie schon gesagt liefert die Funktion 1 zurück und ich das Signal wird - überprüfbar - erzeugt. Das Handle stimmt also und die Hardware klickert auch beim Initialisieren.

Ich habe kein solches Teil. Meine Erfahrungen mit ähnlichen Teilen ist aber das man Anfangs erst mal einen definierten Zustand herstellen muss, z.B. über das initiieren einer Messung.
Danke. Hab ich versucht, keine Besserung.

Du hast den c Typen float mit double übersetzt. Bist du dir sicher dass das stimmt? float hat normalerweise nur 4 Bytes, double jedoch 8.
Nein, leider nicht. Ich hab double jetzt mal durch real ersetzt und auch andere Typen nochmal angepasst.

Die Deklaration schaut nun so aus:
Delphi-Quellcode:
function ps2000_set_sig_gen_built_in
         (handle : smallint;
          offsetVoltage : longint;
          pkToPk : longword;
          waveType : integer;
          startFrequency : real;
          stopFrequency : real;
          increment : real;
          dwellTime : real;
          sweepType : integer;
          sweeps : longword)
          : smallint; stdcall; external 'ps2000.dll';
Resultat bleibt aber auch hier das gleiche ...

ABER ich hab grad mal ein kleines Testprojekt in Dev-C++ erstellt:
Code:
#include <stdio.h>
#include <stdlib.h>
#include "ps2000.h"

int main(int argc, char *argv[])
{
  short ps2000_hnd = 0;
  long ofsV = 0;
  unsigned long pkToPk = 1000000;
  PS2000_WAVE_TYPE wt = PS2000_SINE;
  float startF = 200, endF = 400, inc = 0, dT = 0;
  PS2000_SWEEP_TYPE st = PS2000_UP;
  unsigned long sweeps = 0;
  int r = 0;
 
  printf("Opening Pico device ...\n");
 
  ps2000_hnd = ps2000_open_unit();
  if (!ps2000_hnd) {
    printf("Error opening Pico device.\n");
    return -1;
  }

  printf("Device initialized: %d\n", ps2000_hnd);
 
  r = ps2000_set_sig_gen_built_in(
    ps2000_hnd,
    ofsV,
    pkToPk,
    wt,
    startF,
    endF,
    inc, dT, st, sweeps
  );
 
  printf("Result: %d\n", r);
 
  system("PAUSE");   
  return 0;
}
... und siehe da: Es kommt genau das raus, was soll, so wie in der PicoScope Software selbst. Schonmal ein riesen Fortschritt.

Das heisst, es muss irgendwie an der Deklaration liegen. Aber nur wo, wir haben doch schon alles Mögliche durchprobiert ...
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: PicoScope 2000 Signalgenerator

  Alt 3. Mär 2011, 10:01
WOOHOO! single statt double/real ist die Lösung.

Delphi-Quellcode:
function ps2000_set_sig_gen_built_in
         (handle : smallint;
          offsetVoltage : longint;
          pkToPk : longword;
          waveType : integer;
          startFrequency : single;
          stopFrequency : single;
          increment : single;
          dwellTime : single;
          sweepType : integer;
          sweeps : longword)
          : smallint; stdcall; external 'ps2000.dll';
Nun passt es 1:1 mit der PicoScope Software und der Tag ist gerettet. Vielen Dank euch!

  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz