PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Variabelenfrage ? - Und Verbesserungsvorschläge gesucht



whynot
09.07.2008, 22:28
Hallo,
hatte hier im Forum schon mal nach einer Balkenanzeige gesucht,
aber nicht soviel gefunden.
Also selberschreiben, das Ergebniss Funktioniert. (Bei mir)
Jedenfalls für eingangswerte 0 - 1023 und 20 Zeichen Display

Dabei ist mir aufgefallen das ich die Variabele B als Integer
Dimensionieren muss, obwohl sie zu keiner zeit grösser 255 ist.
Warum ist das so. ?

Und natürlich wäre ich für Vorschläge Dankbar wie man es
besser mach kann bzw. was man so besser nicht macht.
(Sind meine ersten gehversuche in Bascom)


$regfile = "M8def.dat"
$crystal = 8000000
$hwstack = 32
$swstack = 10
$framesize = 40
$lib "LCD4.LBX"

Dim A As Integer
Dim B As Integer
Dim C As Byte
Dim D As Byte
Dim E As Byte

Config Adc = Single , Prescaler = Auto
Config Lcd = 20 * 4

Deflcdchar 1 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16
Deflcdchar 2 , 20 , 20 , 20 , 20 , 20 , 20 , 20 , 20
Deflcdchar 3 , 21 , 21 , 21 , 21 , 21 , 21 , 21 , 21

Cls
Cursor Off

Do

A = Getadc(5)
B = A / 52
A = A / 17
D = 3 * B
C = A - D
E = 19 - B
If C > 3 Then C = 3
If B > 0 Then Lcd String(b , 3)
Lcd String(1 , C )
If B < 19 Then Lcd String(e , 32)
Home Upperline

Loop

End

Gruss Achim

radbruch
09.07.2008, 22:34
Hallo


Dabei ist mir aufgefallen das ich die Variabele B als Integer
Dimensionieren muss, obwohl sie zu keiner zeit grösser 255 ist.
Warum ist das so. ?
Hier könnte das Ergebniss 16 Bit haben:

B = A / 52

Vermutlich muss B deshalb auch Integer sein. Ist aber eher geraten...

Gruß

mic

whynot
09.07.2008, 23:09
Hallo mic,

finde ich ganz witzig, wenn ich B als Byte nehme kommt immer wieder 1,2,3,4,1,2,3,4....
anstatt 1-19.

Variabele D darf ich aber als Byte Dimesionieren, das funktioniert.

also 'byte = integer / wert' ist BÖSE
aber 'byte = integer * wert' ist OK

Wäre schon interessant zu wissen warum.
Mal sehen ob es vieleicht wer weiss.

Gruss Achim