-         

Ergebnis 1 bis 3 von 3

Thema: Variabelenfrage ? - Und Verbesserungsvorschläge gesucht

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    29.06.2008
    Beiträge
    32

    Variabelenfrage ? - Und Verbesserungsvorschläge gesucht

    Anzeige

    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)

    Code:
    $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

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    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

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    29.06.2008
    Beiträge
    32
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •