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

Alle Ports,DDR-Register in Dezimal und Binärdarstellung Kategorie: Programmierung Basic (von Ernst H. - 9.11.2010 20:44)
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
'Alle Ports,DDR-Register in Dezimal und Binärdarstellung
' für die Abfrage ob Ein oder Ausgang, Pull Up, und Portstatus
' Ernst H. 9-11-2010
'
' fertiges Programm  - einfach starten!


Dim Laufvar As ULong
Dim Auffrischung As ULong
Dim Regi As Byte

Sub main()
Do While (1)
Laufzeitvariable ()

If Laufvar > Auffrischung Then
    Msg_DDR_Register()
    Msg_Portbins()     ' Pull Up geschalten oder nicht
    Msg_Ports()
    Msg_WriteChar(13)           'CR Zeichen

    Auffrischung = Laufvar + 200    '200 * 10ms = 2sec
End If
End While
End Sub






Sub Laufzeitvariable ()
'Laufzeitvariable für Timer und Warteschleifen ohne "Wait"
    Laufvar = Laufvar + Timer_TickCount( )
End Sub

Sub Msg_DDR_Register()
Dim Regi As Byte
    Regi = DirAcc_Read(0x3A)
    Msg_WriteText("DDRA=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x37)
    Msg_WriteText(" B=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x34)
    Msg_WriteText(" C=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x31)
    Msg_WriteText(" D=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x22 )
    Msg_WriteText(" E=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x61)
    Msg_WriteText(" F=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x64)
    Msg_WriteText(" G=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Msg_WriteChar(13)           'CR Zeichen

End Sub

Sub Msg_Portbins()
Dim Regi As Byte
    Regi = DirAcc_Read(0x39)
    Msg_WriteText("PinA=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x36)
    Msg_WriteText(" PB=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x33)
    Msg_WriteText(" PC=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x30)
    Msg_WriteText(" PD=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x21 )
    Msg_WriteText(" PE=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x60)
    Msg_WriteText(" PF=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x63)
    Msg_WriteText(" PG=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Msg_WriteChar(13)           'CR Zeichen

End Sub

Sub Msg_Ports()
Dim Regi As Byte
    Regi = DirAcc_Read(0x3B)
    Msg_WriteText("PA=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x38)
    Msg_WriteText(" PB=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x35)
    Msg_WriteText(" PC=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x32)
    Msg_WriteText(" PD=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x23 )
    Msg_WriteText(" PE=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x62)
    Msg_WriteText(" PF=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Regi = DirAcc_Read(0x65)
    Msg_WriteText(" PG=")
    Msg_WriteInt(Regi)
    Msg_WriteChar(32 )
    Msg_WriteByteBit(Regi )

    Msg_WriteChar(13)           'CR Zeichen

End Sub

Sub Msg_WriteByteBit (Wert As Byte)
       Dim Ziffer As Byte
       Dim Zwischen As Byte

      Ziffer = Wert / 128
      Msg_WriteInt(Ziffer)
      Zwischen = Wert Mod 128
      Ziffer = Zwischen / 64
      Msg_WriteInt(Ziffer)
      Zwischen = Wert Mod 64
      Ziffer = Zwischen / 32
      Msg_WriteInt(Ziffer)
      Zwischen = Wert Mod 32
      Ziffer = Zwischen / 16
      Msg_WriteInt(Ziffer)
      Msg_WriteChar(32)            'Leerzeichen ausgeben
      Zwischen = Wert Mod 16
      Ziffer = Zwischen / 8
      Msg_WriteInt(Ziffer)
      Zwischen = Wert Mod 8
      Ziffer = Zwischen / 4
      Msg_WriteInt(Ziffer)
      Zwischen = Wert Mod 4
      Ziffer = Zwischen / 2
      Msg_WriteInt(Ziffer)
      Ziffer = Wert Mod 2
      Msg_WriteInt(Ziffer)

End Sub


    Antwort schreiben


Antworten: