So Überraschung ich hab ein Problem. Und zwar ich hab den ATMega128Funk darum habe ich versucht das Programm von Frank entsprechend zu modifizieren.



'################################################# ##
'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 Sub Led_display_init()
Declare Sub Led_display(byval Ziffer As Byte , Byval Zahl As Byte)


$regfile = "m128def.dat"

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 Zahl As Byte



$crystal = 16000000 'Quarzfrequenz
$baud = 9600

Config Scl = Portd.7
Config Sda = Portd.0 'Ports fuer IIC-Bus



I2cinit
Led_display_init




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 &B1110111

I2cstop

'Alle Ziffern auf 0
For Z = 1 To 9
Led_display Zahl , Z
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




Bin mir aber recht sicher zumindest bei der For-Schleife Mist gebaut zu haben. Den es gibt zwar keine Fehlermeldungen aus. Tut aber bei der Rn-Digi 7-Segmentanzeige auch nichts.

Hat jemand Vorschläge?
Wäre aber schon dankbar wenn jemand mein Programm durchlesen und mich auf Fehler und Verbesserungen aufmerksam machen kann.

Danke Simon