Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Donanımsal I2C sorunu

Başlatan silver_wolf, 14 Mart 2020, 21:01:19

silver_wolf

Selam Arkadaşlar;
PIC16F877 ve rs232 terminal'le 24c02'yi okuyup yazma donanımsal olarak CCS C'nin kendi kütüphanesiyle nasıl çalıştırılıyor?

"CCS ile PIC Programlama" kitabının 24c02 donanımsal olarak çalıştırılan örneğinin HEX'i çalışıyor ama kitaptaki kodu CCS C 5.089 ve CCS C 5.092 IDE'lerinde CCS C'nin kütüphanesiyle derledim ve çalışmadı. I2C DEBUG'ta "S A0 A" yazıyor ama "P" ve diğer yazmıyor yani ext_eeprom_ready fonsiyonundaki i2c_stop() fonksiyonu çalışmıyor.

Çalıştırmak için kitaptaki kodda yaptığım değişiklikler;

1) "#use i2c(master, sda=pin_c4, scl=pin_C3, slow=100000)" kısmını yorum satırı yaptım ve
"init_ext_eeprom();" fonksiyonunu ekledim ve derledim. Sonuç aynı, "S A0 A"

2) "init_ext_eeprom();" fonksiyonunu yorum satırı yaptım. Orjinal 2402.c dosyasını projenin klasörüne kopyaladım. Kopya "2402.c" dosyasıdaki "#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)" kısmını yorum satırı yaptım ve "#include "2402_F.c"" komutuyla ekledim ve derledim. Sonuç aynı, "S A0 A"

3) "2402_F.c" dosyasında BYTE read_ext_eeprom(BYTE address) fonksiyonuna "printf("\n\r read_ext_eeprom cagirildi...  ");" fonksiyonunu ekledim. "BOOLEAN ext_eeprom_ready()" fonksiyonuna "printf("\n\r ext_eeprom_ready cagirildi...  ");" ve "printf("\n\r ext_eeprom_ready start gonderildi...  ");" ve "printf("\n\r ext_eeprom_ready calisti...  ");" fonksiyonlarını ekledim ve derledim. Sonuç aynı, I2C DEBUGta "S A0 A" terminalde "read_ext_eeprom cagirildi... ext_eeprom_ready cagirildi... ext_eeprom_ready start gonderildi..." yazıyor ama "ext_eeprom_ready calisti..." yazmıyor. Bundan da "i2c_stop();" fonksiyonunun çalışmadığı sonucunu çıkardım.

Nerede yanlış yapıyorum.