Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche schnelle hilfe mit IF-THEN-ELSE Anweisung
Ein Hallo an Euch *:-)*,
ich stehe gerade auf dem "Schlauch"!!!
Ich suche für eine Inputabfrage mit einer IF-THEN Anweisung das Symbol
für das "Ungleich"
= - ist
< - kleiner
> - größer
---
<> - ungleich ??? - beim compilieren bekomme ich einen Fehler.
wie schreibt man "ungleich" richtig???
Danke Gruß
Manuel
IF seppel <> karl then unterschiedlich
EDIT: zeig mal den Fehler Vielleicht hast du verschieden Datentypen, die man nicht vergleichen kann ?
Hi!
Ja, <> ist ungleich.
Poste mal bitte deinen Code, könnte ein Synthaxproblem sein.
VLG Tobi
Buuuh, habe den Fehler gefunden.
War tatzächlich ein Syntaxprob.
Habe vor lauter Code eine if vor der anderen über kreuz geschlossen.
danke an euch
gruß
Upppsss,
noch ne Frage.
Ich messe mit ADC0 eine Spannung pro programmdurchgang einmal.
jetzt suche ich einen Befehl oder Anweisung um festzustellen ob die Differenz aus der "Alten"-Messung zur "Neuen"-Messung größer als 5% ist.
Ich speichere das Ergebnis der "Alten"-Messung in einer Var zwischen und möchte diese messung mit der Neuen vergleichen.
Gruß Manuel
klassisch wäre: prozent+/- = (Neu * 100 / alt ) - 100
wenn du aber in Word arbeitest, ist 100 * messwert zu viel (max 65535)
und wenn du eh' nur in 5% schritten werkst, kannst du auch kürzen und
diff = (Neu * 20 / alt ) - 20
dabei wäre "diff" die Differenz in 5%-Schritten plus/minus
dann mußt du aber mit integer arbeiten
willst du das auch nicht und bei word bleiben:
diff = Neu * 20 / alt
dabei wäre
"diff = 20 " Änderung kleiner als +/- 5%
"diff = 21 " Änderung +5%
"diff = 19 " Änderung -5%
@PicNick
hmmm,
moment das heist.
' *** CPU Einstellungen ***
$regfile = "At26def.dat"
$crystal = 1000000
' *** CPU Einstellungen ***
' *** AD-Wandler ***
Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc
' *** AS-Wandler ***
Dim Spg_lade1 As Word
Dim Spg_lade2 As Word
Dim Merker As Integer
Spg_lade1 = Getadc(0)
Spg_lade2 = Spg_lade1
Do
Spg_lade1 = Getadc(0)
Merker = Spg_lade1 * 20
Merker = Merker / Spg_lade2
Merker = Merker - 20
If Merker < 6 Then
Gosub Ok
Else
Spg_lade2 = Spg_lade1
End If
Loop
End
Ok:
Return
kannst mal ankuken???
gruß manuel
Vorsicht, da mußt du umdenken:
If Merker < 6 Then
' schon zu viel !!!
merker = 1 sind ja schon +5 Prozent
If Merker = 0 Then ' differenz ist kleiner als +/-5 Prozent
Gosub Ok
Else
Am besten denk ' dir Werte aus und rechne mit Excel oder Taschenrechner nach !
hi,
mir ist der genaue wert eigendlich "wurst".
mir gehts nur darum, wenn die abweichung grösser als 5% ist dann soll der AD so lange messen bis die Spannung wieder stimmt.
liegt die abweichung innerhalb der 5% soll das unterprogramm "OK" ausgeführt werden.
Stimmt das dann so???
Merker = Spg_lade1 * 100
Merker = Merker / Spg_lade2
Merker = Merker - 100
und langt "integer" für den merker?
gruß Manuel
@PicNick
kannst dir bitte mal im oberen listing die konfiguration des ADs ansehen.
ich wollte eigendlich nicht im "single"-mode betreiben sondern im "free"-mode.
das klappt aber nicht.
Muß ich sonst noch etwas ändern ausser "single" durch "free" ersetzen???
Gruß manuel
In dem fall nicht, integer geht ja nur bis +32767 , deswegen hab ich ja gemeint, du nimmst "20", dann ist im Ergebnis unten alles = 0, was innerhalb +/- 5% liegt. Is doch einfacher ?
Und mit dem Integer kommst du auch aus.
d.h.
wenn ich mit 20 Rechne dann ist immer wenn das ergebnis ungleich 0 ist die abweichung zu groß - richtig so???
hast noch nen tipp mit dem single und free problem??
gruß
? welches Problem ?
EDIT: Ich nehm' immer single , nullo problemo
ja aber für was gibts dann dieses "free"Ding??? - wenns keiner braucht
ich dachte das ist schneller???
Sorry @PicNick,
ich muß kurz mit dem "Hundi" gassie gehen - bin in ca. 30 Min wieder da
Ist n echter Hundi kein robohundi - sonst hab ich pipi alarm!!! *grins*
hof ich erwisch dich dann wieder
gruß Manuel
Free triggert er sich selber, da mußt du aber einen Interrupt machen oder auf das Bit lauern.
Die ADC-Geschichte selber is aber auch nicht schneller.
Du hast außerdem nix davon, wenn du mehrere Känäle verwendest und umschalten mußt.
So: PicNick gibt's erst morgen wieder. :-)
Hallo Manuel
Ich schalte mich da spät ein, doch trotzdem mein Vorschlag. Solltest du nicht gar zu knapp an RAM-Speicher sein, würde ich von jedem "alten Wert" den +5% und -5% berechnen als Variable ablegen und den neuen prüfen ob er größer als var_plus_5% oder kleiner als var_minus_5% ist.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.