Hi Max666,
also irgendwie verstehe ich dein Problem noch nicht richtig. Du hast doch gesagt das die Digitalanzeige schon mit dem Demo gelaufen ist.
Ich hab es nochmal ausprobiert und einfach die Include-Zeile wie oben schon genannt ausgewechselt und dann das ganze mit dem Demo für den Mega32 compiliert. Hatte dabei überhaupt keinerlei Probleme. Du mußt eigentlich garnix am Code ändern.
So wie er hier ist, läuft er auf dem Mega32
Oder verstehe ich dich irgendwie falsch?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" 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 $crystal = 16000000 'Quarzfrequenz $baud = 9600 Config Scl = Portc.0 'Ports fuer IIC-Bus Config Sda = Portc.1 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 Print Print "**** RN-Control V1.4 *****" Print "Das neue Experimentier- und Roboterboard" Print 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 For I = 0 To 9 Led_display Z , I Waitms 300 Next I Next Z Case 3 Case 4 Case 5 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 &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
Vielleicht sind bei dir die I2C-Ports falsch definiert, ich hab diese sicherheitshalber mal oben im Code definiert
Das sind die Zeilen:
Code:Config Scl = Portc.0 'Ports fuer IIC-Bus Config Sda = Portc.1







Zitieren

Lesezeichen