-         
Ergebnis 1 bis 7 von 7

Thema: Brauche Hilfe beim Umrechnen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2010
    Beiträge
    10

    Rotes Gesicht Brauche Hilfe beim Umrechnen

    Anzeige

    Hallo, Leute!

    Es geht um folgende Tabelle: http://martinsuniverse.de/projekte/a...iszeichen.html

    Für mich sind die Zahlen interessant, also &H30, &H31, &H32, &H33, &H34, &H35, &H36, &H37, &H38, &H39. Das sind dann 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

    Angenommen, ich habe eine Variable A
    Wenn A = 3 ist, soll es auf &H33 umgerechnet werden.
    Wenn A aber 30 ist, ist das dann &H33 und &H30.

    Zur Zeit arbeite ich mit if-then schleifen, was sehr aufwändig ist und viel Flash kostet.
    Beispiel:
    If A = 13 then
    Zeichen1 = &H31
    Zeichen2 = &H33
    end if

    If A = 14 then
    Zeichen1 = &H31
    Zeichen2 = &H34
    end if

    usw.

    Wie Ihr seht, wird die Umrechnung sehr lang.

    Wie kann ich das Problem anders lösen?

    Beispiel, wie ich es mir vorstelle:

    Dim A as Byte
    Dim y as byte
    Dim x as Byte

    Do
    A = 46

    gosub umrechnen
    print y, x

    Loop

    umrechen:
    xxx
    xxx
    xxx
    ...
    y = &H34
    x = &H36
    return



    Hoffe, es kann mir Jemand helfen.

    Danke und Gruss

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    55
    Beiträge
    5.789
    Blog-Einträge
    8
    So etwa:

    Code:
    Dim Zehner As Byte , Einer As Byte , A As Byte
    
    Zehner = "0"
    Einer = "0"
    A = 46
    
    While A >= 10
       A = A - 10
       Zehner = Zehner + 1
    Wend
    
    While A > 0
       A = A - 1
       Einer = Einer + 1
    Wend
    
    If Zehner = "0" Then Zehner = " "       ' Führende 0 mit Leerzeichen ersetzen
    Print Zehner ; Einer

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

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    27
    Beiträge
    1.192
    Hallo,
    zu jeder Ziffern musst du dann nur noch &H30 addieren, dann müsste es passen.
    Grüße,
    Bernhard

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    23.07.2010
    Beiträge
    10
    Danke.
    Werde ich später ausprobieren, muss jetzt Reifen wechseln.

    Falls es noch Vorschläge gibt, her damit.

    Gruss

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    48
    Beiträge
    1.255
    Ascii-Ausgabe in Bascom:

    Print Asc(variable)

    Gruß, Michael

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Ascii-Ausgabe in Bascom:
    Print Asc(variable)


    Man muss allerdings beachten, dass (variable) erstens ein String sein muss, und zweitens nur das erste Zeichen des Strings umgewandelt wird. So schreibt´s zumindets die Bascom-Hilfe:

    Assigns a numeric variable with the ASCII value of the first character of a string.


    Aber wie man eine mehrstellige Zahl in Ziffern zerlegt hat radbruch ja schon vorgeschlagen, und die Umwandlung in Strings sollte ja auch kein größeres Problem sein.

    Werde jetzt übrigens auch mal Reifen wechseln


  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Dafür ist der LookUp Befehl recht gut geeignet. Ungetestet aus dem Kopf:

    Code:
    Umrechnen:
       If A > 10 Then
          Z1 = A Mod 10
          Z2 = A - z1
          Z2 = Z2 / 10
          Zeichen1 = Lookup(z1 , Werte)
          Zeichen2 = Lookup(z2 , Werte)
       Else
          Zeichen1 = Lookup(a , Werte)
          Zeichen2 = 0
       End If
    Return
    
    Werte:
    Data &H30 , &H31 , &H32 , &H33 , &H34 , &H35 , &H36 , &H37 , &H38 , &H39
    Okok - war wohl doch ein zu langer Tag:

    Code:
    Umrechnen:
       If A > 10 Then
          Z1 = A Mod 10
          Z2 = A - z1
          Z2 = Z2 / 10
          Zeichen1 = Z1 + &H30
          Zeichen2 = Z2 + &H30
    
       Else
          Zeichen1 = A + &H30
          Zeichen2 = 0
       End If
    Return
    Geändert von peterfido (16.10.2011 um 20:52 Uhr)
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

Ähnliche Themen

  1. Brauche Hilfe beim TC 4469CPD MOTORTREIBER-IC
    Von manu418 im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 31.05.2009, 11:26
  2. Brauche Hilfe beim entrümpeln
    Von BoondockDuck im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 09.09.2008, 20:50
  3. brauche hilfe beim programmieren
    Von Anti süd im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 30.01.2008, 10:29
  4. Brauche hilfe mit PWM beim ATmega16
    Von MartinFunk im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 30.11.2006, 14:07
  5. brauche hilfe beim basteln
    Von over load im Forum Elektronik
    Antworten: 15
    Letzter Beitrag: 08.03.2006, 10:03

Berechtigungen

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