WinFuture-Forum.de: [c++] Led's Leuchten Wie Sie Wollen!? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[c++] Led's Leuchten Wie Sie Wollen!?


#1 Mitglied ist offline   Feigling 

  • Gruppe: aktive Mitglieder
  • Beiträge: 727
  • Beigetreten: 07. März 04
  • Reputation: 6
  • Geschlecht:Männlich

geschrieben 02. Mai 2010 - 20:52

Hallo,

ich habe ein Problem :) und zwar sollten meine LED's (Ich habe LED's von Out 1 - Out 8) von meinem USB Board wie folgt Leuchten :

Out 8 sobald mein START Taster gedrückt wird

Out 4 zwischen 0...1800
Out 5 1800...1900
Out 6 1900...2100
Out 7 größer 2100

Mein Zahlenwert wird über einen Poti beliebig eingestellt. Wenn mein Poti jetzt zwischen 0 und 900 steht Leuchten alle LED's. Ich versteh einfach nicht warum!? :P

Seht ihr was am Code? ?(

#include <vcl.h>
#include <K8055D.h>
#pragma hdrstop

#include "uLeerUSB_GUI.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmRegelung *frmRegelung;

int iTemp = 0, iAnalog2;
String strIst;
//---------------------------------------------------------------------------
__fastcall TfrmRegelung::TfrmRegelung(TComponent* Owner)
	: TForm(Owner)
{
	OpenDevice(0);
}
//---------------------------------------------------------------------------
void __fastcall TfrmRegelung::butStartClick(TObject *Sender)
{

	if (iTemp == 0)
	{
		butStart->Caption = "Stopp";
		SetDigitalChannel(8);
		timAnalog2->Enabled = true;

		iTemp = 1;
	}
	else
	{
		butStart->Caption = "Start";
		ClearAllDigital();
		timAnalog2->Enabled = false;

		iTemp = 0;
	}

}
//---------------------------------------------------------------------------

void __fastcall TfrmRegelung::timAnalog2Timer(TObject *Sender)
{
	iAnalog2 = ReadAnalogChannel(2);
	panDigitalwert->Caption = iAnalog2;

	strIst = FloatToStrF(((iAnalog2/255.)*2400.),ffFixed,10,0);
	panIst->Caption = strIst + " min/1";

	if (strIst <= 1800)
	{
		WriteAllDigital(0x88);
	}
	if (strIst > 2100)
	  {
   		WriteAllDigital(0xF8);
   	}
	if (strIst >= 1800 && strIst <=1900)
	{
		WriteAllDigital(0x98);
	}
	if (strIst >= 1900 && strIst <= 2100)
	{
		WriteAllDigital(0xB8);
	}
}
//---------------------------------------------------------------------------


Das USB Board wird verwendet:

Eingefügtes Bild


Grüße

Dieser Beitrag wurde von Feigling bearbeitet: 02. Mai 2010 - 21:19

0

Anzeige



#2 Mitglied ist offline   aeris 

  • Gruppe: aktive Mitglieder
  • Beiträge: 129
  • Beigetreten: 06. September 08
  • Reputation: 12
  • Geschlecht:unbekannt

geschrieben 02. Mai 2010 - 21:21

if (strIst <= 1800)

Ohne jetzt deine String library zu kennen, aber bist du sicher, dass du hier einen String mit einem Integer vergleichen kannst und die Werte dabei intakt bleiben?

Probiere ob es, wenn du deinen String vor dem Vergleich in Integer umwandelst, dann funktioniert.
0

#3 Mitglied ist offline   Feigling 

  • Gruppe: aktive Mitglieder
  • Beiträge: 727
  • Beigetreten: 07. März 04
  • Reputation: 6
  • Geschlecht:Männlich

geschrieben 02. Mai 2010 - 21:27

Ja das war der Fehler!

Ich habe nun den String mit StrToInt in einen Integerwert geändert und Siehe da, es geht!

Danke!

Aber warum kann ich string nicht mit Integer vergleichen? Der String wird ja ohne Kommastelle berechnet und somit entspricht er ja eigentlich einem Integerwert!?

Grüße
0

#4 Mitglied ist offline   zwutz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 659
  • Beigetreten: 17. Juli 07
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 02. Mai 2010 - 22:25

Beitrag anzeigenZitat (Feigling: 02.05.2010, 22:27)

Aber warum kann ich string nicht mit Integer vergleichen? Der String wird ja ohne Kommastelle berechnet und somit entspricht er ja eigentlich einem Integerwert!?


ein String besteht aus Zeichen, nicht aus Ziffern
Raise your glass if you are wrong
0

#5 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.947
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 03. Mai 2010 - 06:53

Oder anders ausgedrückt.

Ein String ist im Prinzip Array von Chars. Da ein Char durch eine Zahl repräsentiert wird, kannst du diesen mit einem Integer vergleichen.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0