000
30.06.2004, 13:00 Uhr
~Schwabi
Gast
|
Hallo, bin dabei ein Bussystem zu konfigurieren, zumindest die Aus- und Eingabe. Nun hab ich folgendes Problem. Ich versuche gerade analoge Messwerte zu erhalten, das klappt soweit auch ganz gut, zumindest wenn ich das Programm in einer Funktion ablaufen lasse. Ich benutze den MFC und einen Dialog. Hier mal der Code der funzt: Waehrend der Initialisierung des Dialoges wird der Bus initialisiert und schliesslich die Daten in einer Timerfkt. empfangen.
C++: |
BOOL CAnalogEingangDlg::OnInitDialog() {......... Controler->Init();
U_bit_byte variable;
variable.bits.b15=1; variable.bits.b5=1; variable.bits.b4=1; variable.bits.b3=1; Controler->AnalogerEingang1_32Bit_Ausgang_1=variable.byte; Controler->PD_Out(); SetTimer(1,200,NULL); ....... }
void CAnalogEingangDlg::OnTimer(UINT nIDEvent) { Strom2(); Dialog::OnTimer(nIDEvent); }
void CAnalogEingangDlg::Strom2() { char string[20]; U_bit_byte variable; Controler->PD_In(); variable.byte = Controler->AnalogerEingang1_122I2; sprintf(string, "%i", variable.byte); SetDlgItemText(IDC_EDIT1,string); }
|
Schliesslich wird der Wert in einem Edit Feld ausgegeben.
So nun will ich aber das ganze so machen das ich verschiedene Messbereiche und Strom bzw. Spannung messen kann. Und da ist der Haken, ich waehle alles ueber eine KomboBox aus und klicke einen Button. Timer lÄuft (ueberprueft mit Message Box), aber er gibt mir staendig den Wert 0 zurrueck.
Hier der nicht funktionierende Code:
C++: |
//Waehrend der Initialisierung des Dialoges werden die Comboboxen korrekt //gefuellt
void CAnalogEingangDlg::OnOK() { int combo1_Selection = m_combo1.GetCurSel(); int combo2_Selection = m_combo2.GetCurSel(); U_bit_byte variable;
if (combo1_Selection = 0) { if (combo2_Selection = 0) { Controler->Init(); variable.bits.b15=1; variable.bits.b5=1; variable.bits.b4=1; Controler->AnalogerEingang1_32Bit_Ausgang_1=variable.byte; Controler->PD_Out(); Strom2(); }
....... //hier kommen noch ein paar andere if anweisungen //es werden nur die Bits geaendert, dies ist noetig um auf dem Bus //einen anderen Messbereich einzustellen.
//Schliesslich kommt die gleiche Timerfkt. wie oben.
|
Das ist doch vom Prinzip her genau das gleiche, I don't understand javascript:emoticon('') Kann mir dabei jemand helfen?????
Gruesse Schwabi. |