Ynt: 18F46K22 'de 2. I2C donanımı nasıl kullanılır.

Başlatan Mucit23, 12 Ağustos 2016, 20:00:11

Mucit23

18F46K22'de MSSP2 donanımını I2C için kullanmak istiyorum. CCS de nasıl yapacağız bunu?

18F46K22 için SCL2 ve SDA2 pinleri PD0 ve PD2 pinlerine denk geliyor.

I2C için CCS de şöyle bir tanımlama yaptım

#use i2c(master, sda=pin_d1, scl=pin_d0, FORCE_HW, SLOW)

FORCE_HW yazınca çalışmıyor. Software olarak çalışıyor.

Niye MSSP2 derseniz MSSP1 SPI için konfigüre edildi. O çalışıyor



mesaj birleştirme:: 12 Ağustos 2016, 20:03:27

Ekleme

I2C2 şeklinde bir ekleme yapmak gerekiyor sanırım. Tam olarak şöyle.
#use i2c(master, sda=pin_d1, scl=pin_d0, FORCE_HW, SLOW, I2C2)
Ama yine çalışmıyor. 


Mucit23

Yok olmuyor. Şöyle bir hata alıyorum

*** Error 7 "C:\Users\FERHAT\Dropbox\P10 Saat ve Alarm\Program\DS1307RTC.c" Line 20(12,25): Invalid Pre-Processor directive  Invalid Pin ID
Sanki bu komut pic18f46k22 için geçerli değil kanısına vardım.

Şöyle denedim yine olmadı
#PIN_SELECT SCL2=PIN_D0
#PIN_SELECT SDA2=PIN_D1

Murat Mert

#use I2C( MASTER, SCL = PIN_C3, SDA = PIN_C4, SLOW = 100000)

mesaj birleştirme:: 12 Ağustos 2016, 23:38:03

isiste mi deneme yapıyorsun
mert07

Mucit23

Abi yok gerçekte deniyorum.

I2C1 de sıkıntı yok, çalışır illaki. Ama ben I2C2 ile deneme yapıyorum. I2C1 donanımını kullanamıyorum.

Murat Mert

denenmiş kod

#include <18F46k22.h>
#use delay(clock=64000000)
#fuses NOWDT,NOMCLR,INTRC_IO
#use I2C( MASTER, SCL = PIN_D0, SDA = PIN_D1, SLOW = 100000)
mert07

Mucit23

Abi o şekilde çalışıyor zaten. Fakat I2C donanımı kullanılmıyor. CCS soft olarak işi hallediyor. Donanımsal olarak çalışması için aşağıdaki gibi tanımlamak gerekiyor. Öylede çalışmıyor

#use I2C( MASTER, SCL = PIN_D0, SDA = PIN_D1, FORCE_HW, SLOW = 100000)

aliveli

#PIN_SELECT SCK2=PIN_D0
#PIN_SELECT SDI2=PIN_D1
#use I2C( MASTER, SCL = PIN_D0, SDA = PIN_D1, FORCE_HW, SLOW = 100000)

böyle yapınca olmadı mı?

PROTECH_

Eğer birden fazla i2c kullanıyorsan stream de tanımlamalısın

örn. #use i2c(stream=i2c2,.... şeklinde
Multi-Core ,RTX,ThreadX, FreeRTOS, MODBUS  RTOS - Electronic-Hardware -- BERLIN