- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 5 von 5

Thema: Frage zu Bascom

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    14.10.2007
    Ort
    Fürstenfeldbruck
    Beiträge
    9

    Frage zu Bascom

    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Bin grad am Programmieren eines 20 Kanal-Ir-Empfängers (RC-5 Code). Der Empfänger funktioniert auch ohne weiteres(Zahlen 0-9, Play,Pause etc..) Nun möchte ich aber Zahlen eingeben von 0-99, hierzu will ich das Toggle-Bit auslesen was auch noch ohne weiteres funktioniert, mein Problem liegt nun aber darin, dass wenn 2 Tasten gedrückt worden sind zb 1 und 9 (welche in Variablen zb. Command 1 u. Command2 gespeichert worden sind) ich diese zusammenzufügen möchte zu z.B. 19, ich bin mir sicher das der Befehl sehr einfach dafür ist, aber irgendwie will ich nicht dahinter steigen. Ich hoffe ihr könnt mir helfen

    MfG
    wolper

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    die einzelnen Werte sind ja als Zahl vorhanden, also als Byte-Wert, diese kann man einfach zusammenzählen:
    Cmdges = Cmd1 * 10 + Cmd2

    In Bascom wird man das aber noch aufteilen müssen, da nur eine Rechnung pro Zeile geht.

    Wenn Du einen String haben möchtest, geht das mit
    S = Str(Command)
    danach beide Werte zusammenhängen.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    14.10.2007
    Ort
    Fürstenfeldbruck
    Beiträge
    9
    Danke für die Antwort, hab mir schon gedacht das des wirklich einfach gehalten ist.
    Hab das jetzt mal fertig geschrieben, vll könnte einer von euch schnell einen Blick drüber werfen ob das so funktionieren würde/könnte?!
    (sitz gerade in der Arbeit und kann das leider nicht testen)Vielleicht ist ja ein gröberer Fehler vorhanden, den man auf dem ersten Blick erkennt und ich den vor dem ersten Testen noch ausmerzen kann.

    Code:
    Do
    
     Zahl1 = 0
    
     Getrc5(address , Command)                                  'lese Adresse und Kommando von TSOP
                                                                 
     If Address < 255 Then
    
              Toggold = Command.7                               '  Toggle Bit merken
              Command = Command And &B01111111                  'lösche Toggle-Bit
              Command = Command1
    
              Do
    
              Getrc5(address , Command)
              Command = Command And &B01111111
              Incr Zahl1
              Waitms 1
              Loop Until Zahl1 = 500
    
              Togg = Command.7
              If Togg <> Toggold Then
                  Cges = Command1 * 10   
                  Cges = Command1 + Command
                  Cges = Command
                Else
                   Goto Commandabfrage
              End If
    
    Commandabfrage:                                             
             If Command = 12 Then                            
             Toggle Porta.0                                    
             End If
        Waitms 40
    
    End If                                            'warte 40 Millisekunden
    Loop
    End
    Variablen Zuweisung, Output/Input Config etc. ,hab ich mal rausgelassen das es sich schöner lesen lässt

    MfG
    wolper

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Moin,

    das hier hat so noch keinen praktischen nutzen:
    Code:
                  Cges = Command1 * 10   
                  Cges = Command1 + Command
                  Cges = Command
    es muss in jeder Zeile schon das Ergebnis von der vorhergehenden Zeile verwendet werden.

    Code:
                  Cges = Command1 * 10   
                  Cges = Cges + Command

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    14.10.2007
    Ort
    Fürstenfeldbruck
    Beiträge
    9
    Hallo,

    Danke für die Hilfe, da hast du natürlich recht, dummer Fehler!

    hab es jetzt abgeändert zu
    Code:
    Cges = Command1 * 10            '   erste Taste * 10 u. Ergebniss in Cges schreiben
    Cges = Cges + Command          '   erste Taste + zweite Taste Ergebniss in Cges schreiben
    Command = Cges                     '   Ergebniss Cges wird in Command geschrieben
    Ich werde das Programm heute Abend testen, sobald ich aus der Arbeit heimkomm. Werde dann mein Ergebniss posten.

    MfG
    wolper

Berechtigungen

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

Solar Speicher und Akkus Tests