Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Bitoperation Kategorie: Programmierung Basic (von DL1ASL - 27.01.2017 19:17)


Hallo liebe User !
Habe nachfolgend ein Programm ,das jeden nützlich sein könnte.

/*
Autor   : DL1ASL , Klaus
Titel   : Wert von Bit 1 erkennen
          kann 0 oder 1 sein
          Verwendung für  Bitschiebeoperationen
C-C Pro : 32
V.1.0   : 23.01.2017
*/
#define LF 0x0A
Sub main()
Dim i  , x  As Integer   'i= For x=Wert nach Vergleich
Dim c   As Integer   'c= Dezimal Wert eines ASCII-Zeichen
Dim num(8) As Char   'Array für num
'rs232 ----------------------------------------------------
Serial_Init(0,SR_8BIT Or SR_1STOP Or SR_NO_PAR,SR_BD9600)
'Init RS232:   9600 bps , 8 Bit, 1 Stop, NP
'----------------------------------------------------------

  Do While True
     c =  65  'A  als Beispiel
     '-- Serial_Write... Werte an COM ausgeben
     Serial_WriteText(0,"c hex=")
     Str_WriteWord(c,16,num,0,2)   ' 10=dez  16= Hex
     Serial_WriteText(0,num)
     For i = 1  To 8
         Serial_WriteText(0,"Bit ")
         Serial_Write(0,i+48)
         x = c And 0x01
         If x = 1 Then
            Serial_WriteText(0," x = 1 ")
         Else
            Serial_WriteText(0," x = 0 ")
         End If
     c = c >> 1   'siehe Bitschiebeoperatoren
                ' >> um ein Bit nach rechts schieben
     Serial_WriteText(0,"c hex=")
     Str_WriteWord(c,16,num,0,2)   ' 10=dez  16= Hex
     Serial_WriteText(0,num)
     AbsDelay(1000)
     Next
    Serial_Write(0,LF)
    AbsDelay(1000)
  End While
End Sub '  --  Ende Main ----------------
/*
"A" Binär = 0100 0001
   Bit 8=0 >|       |< Bit 1=1
'Ergebnis
c dez=65 , hex=41
Bit 1 x = 1 c hex=20
Bit 2 x = 0 c hex=10
Bit 3 x = 0 c hex=08
Bit 4 x = 0 c hex=04
Bit 5 x = 0 c hex=02
Bit 6 x = 0 c hex=01
Bit 7 x = 1 c hex=00
Bit 8 x = 0 c hex=00
*/

Viel Erfolg damit.


    Antwort schreiben


Antworten: