16F628+I2C OKUMUYOR

Başlatan demirkan1, 24 Mayıs 2004, 11:56:40

demirkan1

USTALARIM YARDIMINIZA İHTİYACIM VAR. PBP KULLANIYORUM
16F628 İLE  24C16 VEYA 24C256 EEPROMUNU BİR TURLU OKUTAMADIM
HER İKİ EEPROMADA YAZABİLİYORUM ANCAK OKUTAMIYORUM A VE B PORTLARINI DENEDİM OLMADI SDA VE SCL Yİ 4.7 K İLE + BAGLIYORUM DİGER 1,2,3,4,7 UCLARI - DE BYTE VE WORD İLE ADRESLERİ TANITTIM. YANİ NE YAPTIMSA HER SEFERİNDE YAZDI ANCAK OKUMADI LÜTFEN BU İŞİ BİLEN USTALAR BANA YARDIMCI OLURMUSUNUZ YAZDIGIM YAZILIM AŞAGIDA ACABA NERDE HATA YAPTIM
HERKESE ŞİMDİDEN TEŞEKKÜRLER.  

   ADRS=1
   DAT="A"
   I2CWRITE PORTB.6, PORTB.7, KONTROL, ADRS, [DAT]   
   PAUSE   10
   
   ADRS=1
   I2CREAD   PORTB.6, PORTB.7, KONTROL, ADRS, [B1]
      
   IF B1="A"   THEN
      GOTO SON
   ENDIF
   HIGH   PORTB.1
   END

SON:
   HIGH   PORTB.0
   END

biteker

adrs ve dat değişkenlerini byte mı yoksa word mi olarak tanımladın? ayrıca b1 değişkeni ne olursa olsun portb.1 high oluyor
programı
IF B1="A" THEN
GOTO SON
ENDIF
low PORTB.1
END
şeklinde değiiştirirsen okumadığında portb low olur

daha açıklayı olursan sanırım sana yardımcı olabiliriz

demirkan1

adrs ve dat degişkenlerini byte ve word olarak her ikisinide denedim
ama olmadı portb.1 ben bilerek high yaptım okumadıgı zaman led
yansın diye yani portb1 ledi yanmadan portb.0 ledi yanar ise okudugunu
anlamak için yazılımın tümünü aşagıda verdim bana yardımcı olabilirsen
memnun olurum

ADRS   VAR   WORD
DAT   VAR   BYTE
B1   VAR   BYTE


KONTROL CON   %10100000

       ADRS=1
   DAT="A"
   I2CWRITE PORTB.6, PORTB.7, KONTROL, ADRS, [DAT]   
   PAUSE   10
   

   ADRS=1
   I2CREAD   PORTB.6, PORTB.7, KONTROL, ADRS, [B1]
      
   IF B1="A"   THEN
      GOTO SON
   ENDIF
   HIGH   PORTB.1
   END

SON:
   HIGH   PORTB.0
   END

demirkan1

16F84+24C16 İLE YUKARIDA YAZMIŞ OLDUGUM PROGRAMI CALIŞIYOR  YANİ HEM YAZIYO HEMDE OKUYOR (ADRS VE DAT BYTE OLARAK TANITTIM) ANCAK 16F628 YAZIYOR AMA BİR TURLU OKUMUYOR