hi,
Ich habe das Programm durchgelesen .Ich habe viele nicht verstanden. Kannt jemand von euch mir erklären ?
Code:
'-------------------------------------------------
'  Die eigene I2C Adresse   (als Slave)
'-------------------------------------------------
Const Mn1_adr = &H6A

'-------------------------------------------------
'  fremde I2C Adresse   (als Master)
'-------------------------------------------------
Const Mn2_adr = &H6E
In diesen Abschnitt heißt es, unsere Atmega32 hat sowohl masteradresse als auch Slaveadresse ? Ich glaube jeder braucht und darf nur 1 Adress haben.

Code:
On Twi Twi_mst_slv_isr, Nosave                       'ISR f. TWI

Gosub Twi_sense                                       'Aktivieren Slave-Funktion
Diese 2 Funktionnen (Twi_mst_slv_isr und Twi_sense) wird in Assemler geschrieben und ich verstehe nicht . Wenn ich in C oder Bascom schreiben will , wie ist die Vorgehenweise.



Code:
If Twi_slv_flag <> 0 Then
'-----------------------------------------------------------------
'             Vorsicht, der Bus ist solange blockiert
'-----------------------------------------------------------------
         Select Case Twi_slv_flag
         Case &H60 : Print Spc(30) ; "SLAVE recv:" ;        'es ist was empfangen worden
                  Print Hex(twi_slv_addr) ; " ";
                  For Temp = 1 To Twi_sr_cntr
                     Print Hex(twi_slv_buff(temp));         'print der Daten
                  Next
         Case &HA8 : Print Spc(30) ; "SLAVE tran:" ;        'es ist was abgeholt worden
                  Print Hex(twi_slv_addr) ; " ";
                  For Temp = 1 To Twi_st_cntr
                     Print Hex(twi_slv_buff(temp));        'print der Daten
                  Next
         Case &H70 : Print Spc(30) ; "SLAVE GCA :" ;        'ein General Call ist gekommen
                  Print Hex(twi_slv_addr) ; " ";
                  For Temp = 1 To Twi_sr_cntr
                     Print Hex(twi_slv_buff(temp));         'print der Daten
                  Next
         Case Else:
                  Print Chr(7) ;                            'Irgendein Fehler
                  Call Twi_show_state(twi_slv_flag)         'Print status-text
         End Select
         Print
         Twi_slv_flag = 0                                   'quittieren
         Twi_slv_stat = 0                                   '
         Gosub Twi_sense                                    'Slave wieder scharfmachen
                                                            'und Bus freigeben
      End If
in diese Funktion wird Daten auf dem Slave empfangt oder aus der gesendet aber ich seh keine Funktion um die Daten zu holen oder zu übertragen .Soweit ich verstehe ,die Funktion gibt nur die Daten aus dem Bildschirm oder durch RS232.

Und ich habe eine allgemein Frage über I2C :
Wenn ich ein mit TWI hardware unterstützte Platin (Platen C) hat,kann ich das in eine andere System hängen um das Status von System auslesen.Das System hier meine ich noch ein Master (Platin A) und Slave (Platin B ) . Sie kommunizieren sich mit einander . Mit Platin C kann ich das Status in dem System (Platin A und B) bekommen .
z.B : Platin A spricht platin B an . Platin B anwortet mit SLA+W . Kannt Platin C das Status SLA+W lesen?

Ich danke euch im Voraus

Mit freundlichen Grüssen