PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Maximalwert aufs Display, wie geht das (bascom)?



xxrider
03.04.2006, 18:44
Hallo,
ich bin gerade dabei mich in die materie einzuarbeiten.
Mein "Projekt":
ich möchte einen Analogen Eingang (von ca. 2-3 Volt) auf dem Display ausgeben inkl. Maximalwert.
Nun meine Probleme:
1. Wie kann ich die gemessenen Werte für das Display trimmen, so dass diese den Bereich linear von 0 bis 1000 anzeigen?
2. Wie kann ich einen Maximalwert speichern im 2-zeilen-Display(meine angehängte Routine funktioniert nicht, was ist hier der Fehler)?




Do

Maxi = W
'analogwert auslesen
W = Getadc(channel)
Maxi2 = W
'analogwert ins display
Locate 1 , 1
Lcd "Wert: " ; W ; " "

'wert in die untere zeile (display), wenn maximal
If Maxi2 > Maxi Then
Locate 2 , 1
Lcd "Maxwert: " ; W ; " "
End If

'rücksetzen des maximalwertes
If Pind.5 = 0 Then
W = 0
Maxi = 0
Maxi2 = 0

Cls
End If


Waitms 100

Loop
End

xxrider
04.04.2006, 11:41
ja, o.k., das mit dem Maximalwert ist geklärt, es muss oben heißen:

If W > maxi then
maxi = W

und dann kann man maxi einfach auf das display ausgeben lassen.
maxi2 kann man vergessen.
so einfach ist das, aber irgendie muss man doch draufkommen....

bein meiner 1. (falschen) version, da wurde ja immer nur der letzte wert mit dem aktuellen verglichen und bei jeder änderung nach oben auf dem Display ausgegeben. Falsch und kompliziert noch dazu.


Holger

MischaMV
12.04.2006, 20:24
Ich schreib mal die Frage hier rein weils zu der Thema passt.

Versuche schon seit paar TAgen mit Bascom Hilfe Analog Wert einzulesen und Auf Lcd anzeigen Lassen.Am Pina.0 ist ein Poti angebracht.
folgender Code.

$regfile = "m16def.dat"

Config Lcd = 40 * 4
Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word , Channel As Byte
Channel = 0

Do
W = Getadc(channel)
Lcd "Channel" ; Channel ; "value" ; W
Incr Channel
if channel >7 then channel = 0
Loop
End

so wie ich es verstanden hab muss eigentlich die Variable W den aktuellen ADC wert enthalten.
danke

MischaMV
12.04.2006, 20:27
Mit dem Befehl Channel = 0 lege ich ja die Pina.0 fest.Oder?
Gruß Michi

xxrider
13.04.2006, 15:27
Ich denke, du müsstest im datenblatt des m16 nachsehen, welche pins ad-Wandler-eingänge sind. wenn es pina.x ist, dann liegst du hier wohl richtig. dein programm liest die ganzen a-pins durch, wird aber nur an pina.0 einen vernünftigen wert bringen, weil du hier ja das poti hast.
Ist das Poti auf pluspol ?
In deiner Schleife solltest du vielleicht noch einen Stopp einbauen um überhaupt was erkennen zu können. Vielleicht Waitms 500?

Was zeigt dein Display eigentlich an?