Huhu Frank,

ich habe jetzt schon ein paar Sachen in der Demo rumgeschoben. Dabei ist mir aufgefallen das Taste 1 bei mir das Display nicht auf 0 setzt. Wenn ich
Code:
            For Z = 1 To 4
              Led_display Z , 0
            Next Z
unter Taste 3,4 und 5 Schreibe geht es jeweils mit sound "dii - düü" der unter Tastenabfrage definiert ist. Wenn ich taste 1 Drücke macht es nur "düü" (denke mal das es der 550er Sound ist) und das Display bleibt auf dem Wert den es vorher angezeigt hat.

Was sagt mit in dem Zusammenhang das?

Code:
      Select Case Ws
         Case 410 To 450
Hier nochmal meine umgebaute Demo:
Code:
'###################################################
'rncontrol_digitest.BAS   Demo zu RN-Digi
'für
'RoboterNetz Board RN-Control ab Version 1.1 und
'Zusatzboard RN-DIGI (vierstellig großes LED-Display per I2C)

'
'Aufgabe:
' Dieses Testprogramm demonstriert die Ansteuerung von RN-Digi

' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet
' Taste 1: Alle Ziffern auf 0 stellen (genau wie bei Reset)
' Taste 2: Nacheinander alle Ziffern von 0 bis 9 zählen


'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'Eigene Programmbeispiele sind im Roboternetz gerne willkommen!
'##############################################################


Declare Function Tastenabfrage() As Byte
Declare Sub Led_display_init()
Declare Sub Led_display(byval Ziffer As Byte , Byval Zahl As Byte)


$regfile = "m32def.dat"
$crystal = 16000000                                         'Quarzfrequenz
$baud = 9600

Config Scl = Portc.0                                        'Ports fuer IIC-Bus
Config Sda = Portc.1

Const Rn_digi_slave_write = &H70
Const Rn_digi_slave_read = &H71
Const Dezimalpunktziffer = 2                                'Segment wo Dezimalpunkt leuchten soll (0=keinen)

Dim Segmente As Byte
Dim Z As Byte
Dim I As Byte
Dim N As Integer
Dim Ton As Integer

Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input                                       'Für Tastenabfrage
Porta.7 = 1                                                 'Pullup Widerstand ein
Dim Taste As Byte


I2cinit

Led_display_init
I = 0
Sound Portd.7 , 400 , 450                                   'BEEP
Sound Portd.7 , 400 , 250                                   'BEEP
Sound Portd.7 , 400 , 450                                   'BEEP
Do

   Taste = Tastenabfrage()
   If Taste <> 0 Then

      Select Case Taste

         Case 1
            For Z = 1 To 4
              Led_display Z , 0
            Next Z

         Case 2
            For Z = 1 To 4                                  'Segmentnummer
               For I = 0 To 9                               'Zähle von 0 bis 9
                   Led_display Z , I
                   Waitms 50                                'Wartezeit zwischen den Zahlen
Sound Portd.7 , 100 , 450                                   'BEEP
               Next I
Sound Portd.7 , 50 , 650                                    'BEEP
            Next Z

         Case 3
            For Z = 1 To 4
              Led_display Z , 0
            Next Z

         Case 4
            For Z = 1 To 4
              Led_display Z , 0
            Next Z
         Case 5
            For Z = 1 To 4
              Led_display Z , 0
            Next Z


      End Select
      Sound Portd.7 , 400 , 500                             'BEEP
   End If

   Waitms 100
Loop

End



'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word


   Tastenabfrage = 0
   Ton = 600
   Start Adc
   Ws = Getadc(7)
   If Ws < 1010 Then
      Select Case Ws
         Case 410 To 450
            Tastenabfrage = 1
            Ton = 550
         Case 340 To 380
            Tastenabfrage = 2
            Ton = 500
         Case 265 To 305
            Tastenabfrage = 3
            Ton = 450
         Case 180 To 220
            Tastenabfrage = 4
            Ton = 400
         Case 100 To 130
            Tastenabfrage = 5
            Ton = 350
      End Select
      Sound Portd.7 , 400 , Ton                             'BEEP
   End If

End Function



Sub Led_display_init()

  I2cstart
  I2cwbyte Rn_digi_slave_write


  I2cwbyte 0                                                'Control Byte


  'Dynamic Alternative Mode und Helligkeit
  'Die oberen 3 Bits bestimmen die Helligkeit
  'Wenn es dunkler sein soll dann z.b. &B0110111
  I2cwbyte &B0010111

  I2cstop


  'Alle Ziffern auf 0
  For Z = 1 To 4
       Led_display Z , 0
  Next Z


End Sub


Sub Led_display(ziffer An Byte , Zahl As Byte)
     I2cstart
     I2cwbyte Rn_digi_slave_write
     I2cwbyte Ziffer


     Select Case Zahl
         Case 0:
               Segmente = &H3F
         Case 1:
                Segmente = &H06
         Case 2:
                Segmente = &H5B
         Case 3:
                Segmente = &H4F
         Case 4:
                Segmente = &H66
         Case 5:
                Segmente = &H6D
         Case 6:
                Segmente = &H7D
         Case 7:
                Segmente = &H07
         Case 8:
                Segmente = &H7F
         Case 9:
                Segmente = &H67
         Case Else :
                Segmente = &H80                             'Ansonsten Dezimalpunkt

     End Select

     If Dezimalpunktziffer = Ziffer Then Segmente = Segmente Or &H80
     I2cwbyte Segmente
     I2cstop
End Sub