Ich habe hier folgendes Phaenomen: Die Ansteuerung meines TWI-Busser (eine RTC haengt da daran) bleibt oft in der Schleife, in der das Interrupt-Bit gepollt wird, haengen (Bit wird nie gesetzt, obwohl ich es vorher durch setzen geloescht habe), und zwar schon beim Aktivieren der Start-Condition. Muesste der Prozessor nicht auf jeden Fall das Bit setzen und mir einen Errorcode zurueckliefern? Mein Code: [...Baudrate auf 80kHz setzen...] outp((1<<TWINT)|(1<<TWEN)|(1<<TWSTA), TWCR); // Startcond. senden while(!(inp(TWCR) & 128)); // Hier kommt er nie mehr raus Mit dem selben Code hat es schon mal funktioniert, nur die Hardware wurde geaendert. PullUps sind auch ok, weiss nicht mehr weiter. Gruss und Dank! Friedemann
Vermutlich hast Du einen Fehler in der Software. Wenn Du z.B. als Master-Receiver nach dem letzten Byte ein ACK sendest, kann es sein, daß Du dann kein Stop senden kannst, weil der Slave ja das nächste Byte auf den Bus legt. Und damit kommt auch kein neues Start. Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.