Ik programmeer pic's via Proton IDE.
De PIC voor dit project is een 16F84A. (rommel pic) ;-)

Als ik een draad van de I2C bus los trek zodat de EEPROM niet gevonden kan worden zou er op het LCD de tekst 'Bus Failed' moeten staan.

Iemand een idee waarom dit niet gebeurd ?
http://www.teijgeler.net/files/I2C.bas

Met het voorbeeld in de help file werkt het wel.
Maar na dat aangepast te hebben dus niet meer.
En de "IF STATUS.0 = 1 THEN GOTO" werkt ook niet.

De EEPROM een 24LC16B kan ik wel gewoon benaderen.

Opgelost ;-)

http://www.teijgeler.net/files/I2C_2.bas

Het maakt dus uit waar je je bus onderbreekt om het te testen.
http://www.teijgeler.net/files/i2c_ack.gif

En als ik naar adres 0 wil schrijven / lezen dan werkt het niet, als ik het naar adres 1 doe wel.
Maar dit zal wel toeval geweest zijn.

p.s. Het is dus een 16KB EEPROM, dus ik heb dan zeker adres 0 t/m 15999 of adres 1 t/m 16000 ?

Nog even getest:

Als ik naar adres 0 wil schrijven en ik trek een draad van de bus los dan krijg ik geen error.
Bij het lezen van adres 0 krijg ik wel een error als de bus niet goed is.

Bij adres 1 werkt alles perfect.

dan is er iets mis met de implementatie van i2c in die compiler.

bij adress 1 staat de SDA na de laatste clockpuls hoog , bij adress nul na de laatste clokcpuls laag.
vandaar dat ie de ene keer wel ene ack ziet de andere keer niet ( behalve als jij er ene pull up op forceert. )