WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Eingangskanal über Popup-Menü bestimmen

 

Marc84

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2009, 10:57     Titel: Eingangskanal über Popup-Menü bestimmen
  Antworten mit Zitat      
Hallo zusammen,
tolles Forum!!

ich bin leider noch nicht sehr geübt in Matlab und hoffe ihr könnt mir helfen. ich besitze eine DAQ Messkarte mit vier analogen und drei digitalen Eingängen.

zunächst hatte ich folgendermaßen einen festen analogeingang angesprochen.

Code:

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)

set(handles.pushbutton1,'UserData',1);

while(get(handles.pushbutton1,'UserData') ==1);

HW=daqhwinfo;
HW.InstalledAdaptors;
NI=daqhwinfo('nidaq');
NI.BoardNames;
NI.InstalledBoardIds;
AI=analoginput('nidaq','Dev1');

addchannel(AI,1);                               %hier die Einstellung um Analogkanal 1 anzusprechen                                              
R=10000;
set(AI,'SampleRate',R);
N=1000;
set(AI,'SamplesPerTrigger',N);
start(AI);
[U,t]=getdata(AI);
.
.
.
delete (AI);
clear AI;
end;
 


dies wollte ich jetzt allerdings mit einem Popup-Menü ändern.

dessen callback sieht folgendermaßen aus

Code:

% --- Executes on selection change in input_tag.
function input_tag_Callback(hObject, eventdata, handles)
switch get(handles.input_tag,'Value')  
    case 1
        Eingangskanal=addchannel(AI,0);
    case 2
        Eingangskanal=addchannel(AI,1);
.
.
.
    otherwise
end
 


und dafür wollte ich den callback des pushbutton_1 wie folgt ändern
Code:

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)

set(handles.pushbutton1,'UserData',1);

while(get(handles.pushbutton1,'UserData') ==1);

HW=daqhwinfo;
HW.InstalledAdaptors;
NI=daqhwinfo('nidaq');
NI.BoardNames;
NI.InstalledBoardIds;
AI=analoginput('nidaq','Dev1');

Eingangskanal;                               %hier die Einstellung um den Analogkanal anzusprechen                                              
R=10000;
set(AI,'SampleRate',R);
N=1000;
set(AI,'SamplesPerTrigger',N);
start(AI);
[U,t]=getdata(AI);
.
.
.
delete (AI);
clear AI;
end;
 


Das klappt leider nicht, da "Eingangskanal" undefiniert ist.

Ist wahrscheinlich ein dummer Anfängerfehler, aber wie gesagt, ich bin sehr neu auf der Schiene.

schönen gruß
Marc


Marc84

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2009, 11:00     Titel:
  Antworten mit Zitat      
oh natürlich, die frage dazu sollte lauten:

wie kann ich es besser machen oder wie überhaupt?

besten dank schonmal Smile
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 07.08.2009, 11:31     Titel:
  Antworten mit Zitat      
Moin,

prinzipiell ist es so richtig, allerdings musst du "Eingangskanal" auch noch für das GUI verfügbar machen --> Stichwort handles-Struktur oder SETAPPDATA (gibts viel zu hier im Forum).

Ansonsten könntest du die Abfrage auch gleich beim Pushbutton machen:
Code:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)

set(handles.pushbutton1,'UserData',1);

while(get(handles.pushbutton1,'UserData') ==1);

HW=daqhwinfo;
HW.InstalledAdaptors;
NI=daqhwinfo('nidaq');
NI.BoardNames;
NI.InstalledBoardIds;
AI=analoginput('nidaq','Dev1');

% hier die Einstellung um den Analogkanal anzusprechen
addchannel(AI, get(handles.input_tag, 'Value')-1); % -1, da du mit dem Kanal ja bei 0 anfängst und mit dem popup-menu bei 1

R=10000;
set(AI,'SampleRate',R);
N=1000;
set(AI,'SamplesPerTrigger',N);
start(AI);
[U,t]=getdata(AI);
.
.
.
delete (AI);
clear AI;
end;


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Marc84

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2009, 11:48     Titel:
  Antworten mit Zitat      
Klasse, funktioniert!

danke!!! Very Happy
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.