rema00
28.02.2006, 17:41
Hallo Freunde!
Ich hoffe sehr, das Ihr mir weiterhelfen könnt!
Ich betreibe eine TWI-Datenbus mit einem Master und 3xSlaves. Das lesen und schreiben von Daten auf den Datenbus funktioniert einwandfrei. Bilder vom SpeicherOzzi beweissen dies.
Nun zu meinem Problem:
Ich verwende bei jedem µC das hardware-basierende TWI-Module!
Wenn ein Byte mit der Funktion z.B. 'twi_write (0xAA)' an einem Slave geschickt wird, wird nun dieser Wert im Register TWDR gespeichert?
Ich wollte folgendenes auf den Slaves realisieren:
while (TWDR==0xAA) //also warten bis der TWDR den Wert AA enthält.
{dann tue was;}
später im Prgramm möchte ich eine case Funktion verwenden:
switch (wert aus TWDR)
case 0x01 {tue was}
case 0x02 {tue was anderes}
so wie hier beschrieben ist, habe ich es schon probiert, aber leider ohne Erfolg!
Ist meine Vorgehnsweise OK, oder bin ich auf dem HOLZWEG?
Freue mich auf Antworten
Gruss rema
Ich hoffe sehr, das Ihr mir weiterhelfen könnt!
Ich betreibe eine TWI-Datenbus mit einem Master und 3xSlaves. Das lesen und schreiben von Daten auf den Datenbus funktioniert einwandfrei. Bilder vom SpeicherOzzi beweissen dies.
Nun zu meinem Problem:
Ich verwende bei jedem µC das hardware-basierende TWI-Module!
Wenn ein Byte mit der Funktion z.B. 'twi_write (0xAA)' an einem Slave geschickt wird, wird nun dieser Wert im Register TWDR gespeichert?
Ich wollte folgendenes auf den Slaves realisieren:
while (TWDR==0xAA) //also warten bis der TWDR den Wert AA enthält.
{dann tue was;}
später im Prgramm möchte ich eine case Funktion verwenden:
switch (wert aus TWDR)
case 0x01 {tue was}
case 0x02 {tue was anderes}
so wie hier beschrieben ist, habe ich es schon probiert, aber leider ohne Erfolg!
Ist meine Vorgehnsweise OK, oder bin ich auf dem HOLZWEG?
Freue mich auf Antworten
Gruss rema