ich habe mit der RN-Digi Platine eine große 7 segmentstoppuhr gebaut mit 100mm hohen Ziffern.
Bild hier
Es sind 2 RN-Digi Platinen eigentlich drinnen, die eine habe ich nun getrennt, weil ich auf der Fehlersuche bin.
die anzeige soll jede 1/100sek hochzählen.
das unten ist jetzt nur so ein testprogramm und nicht das eigentliche.
bloß sieht dann das display nach dem einschalten so aus.
Bild hier
An was kann das liegen?Code:Declare Sub Led_display_init() Declare Sub Led_display(byval Ziffer As Byte , Byval Zahl As Byte) $regfile = "m32def.dat" $crystal = 16000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Timer_irq Const Timervorgabe = 45536 Config Sda = Portc.1 ' I2C Bus konfigurieren Config Scl = Portc.0 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 I2cinit Led_display_init I = 0 Enable Timer1 Enable Interrupts Do Loop 'Dies ist der Programmteil, der in dem von ihnen gewählten 'Intervall aufgerufen wird Timer_irq: Timer1 = Timervorgabe Incr I If I = 10 Then I = 0 End If Led_display 3 , I Return 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 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
Wenn ich den timer abschalte und die Uhr über warteschleifen hochzählen lasse dann geht es einwandfrei.







Zitieren

Lesezeichen