Hallo, wie erzeuge ich ein NO ACKNOWLEDGE (NACK) Signal mit dem Hardware TWI-Interface eines AVRs? Ich will Daten aus einem I2C-EEprom lesen und das letzte zu empfangene Byte muss mit einem NACK Signal vor der Stoppbedingung gekennzeichnet werden. Mit dem TWI-Controll-Register kann ja nur ACK Signale erzeugen, aber keine NACK. Der AVR Arbeitet als Master.
ja so: TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA); while(!(TWCR & (1<<TWINT)));
geht das? TWCR = (1<<TWINT) | (1<<TWEN) | (0<<TWEA); while(!(TWCR & (1<<TWINT))); bzw: TWCR = (1<<TWINT) | (1<<TWEN); while(!(TWCR & (1<<TWINT))); also Bit6 (TWEA) nicht setzen, probier mal
noch nicht, habe noch kein I2C EEprom! Ich glaube das ist so richtig. Ich habe nach einem anderen IC2-Code im Internet gesucht und die haben es genauso gemscht: unsigned char i2c_readNak(void) { TWCR = (1<<TWINT) | (1<<TWEN); while(!(TWCR & (1<<TWINT))); return TWDR; }/* i2c_readNak */ Aber wieso kommt man darauf um ein Nack zu erzeugen das Bit TWEA nicht zu setzen?
Hallo pet, "Aber wieso kommt man darauf um ein Nack zu erzeugen das Bit TWEA nicht zu setzen?" Weil es so im Datenblatt steht ;-). Ist schon ganz richtig so - Du bist auf dem richtigen Weg. MfG, Daniel
im welchem Datenblatt steht das genau? habe nämlich nichts gefunden.
Wenn es kein "NACK" Bit gibt, bleibt ja wohl die einzige Möglichkeit das "ACK" bit nicht zu setzen bzw. es zu löschen. Dazu muss man nicht studiet haben ;-))
Gern geschen, jetzt habe ich wieder eimal faxen machen bei anderen gut ;-))
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.