-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: &B00000000 als ein Byte senden

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    25.08.2007
    Beiträge
    9

    &B00000000 als ein Byte senden

    Anzeige

    Ich bin völlig aufgeschmissen. Ich versuche die ganze Zeit meinen ATMega32 so zu programmieren, das er mir die Daten von zB. PortD0 - PortD7 ausließt
    und wen sich diese verändert haben mir schickt. Soweit so gut auslesen geht, vergleichen geht nur beim Schicken tritt das Problem auf, dass wenn ich einen der Tasta loslasse nichts gesendet wird, da er keinen chr(0) schicken kann. Wie kann ich das umgehen?

    MfG Felix

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Über RS232 schickt man normalerweise immer als String.

    mit str(byte) wandelst Du um.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    25.08.2007
    Beiträge
    9
    ich weiß aber genau darum geht es das zu vermeiden.
    Denn damit hätte ich pro Bit nachher ein Byte datenverkehr.

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Dazu kannst du Printbin benutzen.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    25.08.2007
    Beiträge
    9
    Vielen Dank doch nach Bascom PRINTBIN is equivalent to PRINT CHR(var);

    Und ich habs gerade auch ausprobiert bei : Printbin 0; kommt nichts an.

    Eigentlich muss es doch ne möglichkeit geben das so zu übertragen.
    Oder könnte es am TerminelProgramm liegen, dass chr(0) einfach ignoriert wird?

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    >>>Oder könnte es am TerminelProgramm liegen, dass chr(0) einfach ignoriert wird?<<

    Bingo 0 = NIL

    Manche Terminal-Progs können einen Binärmode, ich weiss aber momentan keines auswendig


    Sende den Wert als

    dim binval as string* 9
    binval = BIN(pind)
    PRINT binval
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Eigentlich nur 3 Bytes.. 0-255
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    ich habe mal folgenden code erfolgreich getestet
    Code:
    $regfile = "m32def.dat"
    $crystal = 1000000
    $baud = 9600
    
    Config Portd = Input
    
    Dim _neu As Byte
    Dim _alt As Byte
    
    
    Do
    
    _neu.0 = Pind.0
    _neu.1 = Pind.1
    _neu.2 = Pind.2
    _neu.3 = Pind.3
    _neu.4 = Pind.4
    _neu.5 = Pind.5
    _neu.6 = Pind.6
    _neu.7 = Pind.7
    
    If _neu <> _alt Then
       Printbin _neu
       _alt = _neu
    End If
    
    Loop
    mit Hterm 0.6.3beta werden alle zustände angezeigt (auch &B00000000)
    Rechtschreibung war, ist und wird wohl immer eine schwäche von mir sein. Bitte nicht kommentieren!

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    46
    Beiträge
    765
    Wozu so viele Bit Operationen? _neu=Pind spart und wirkt genauso.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    ja hast recht ist zu lang. Ich habe das nur auf die schnelle aus altem code kopiert ohne groß nachzudenken.
    Rechtschreibung war, ist und wird wohl immer eine schwäche von mir sein. Bitte nicht kommentieren!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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