hi,
Ich habe das Programm durchgelesen .Ich habe viele nicht verstanden. Kannt jemand von euch mir erklären ?
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:'------------------------------------------------- ' Die eigene I2C Adresse (als Slave) '------------------------------------------------- Const Mn1_adr = &H6A '------------------------------------------------- ' fremde I2C Adresse (als Master) '------------------------------------------------- Const Mn2_adr = &H6E
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:On Twi Twi_mst_slv_isr, Nosave 'ISR f. TWI Gosub Twi_sense 'Aktivieren Slave-Funktion
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.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
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







Zitieren

Lesezeichen