12 Temmuz 2020, 00:37:03

Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d


Atmel Port Tanımlaması

Başlatan thenorthstar, 04 Haziran 2020, 12:38:26

thenorthstar

Merhaba Arkadaşlar,
Aşağıdaki ATMEGA644PA için yapılmış olan tanımlamaları CCS C de 18F8772 için kullanmak istiyorum ama CCS e çeviremedim,

Bukonuda yardımcı olabilir misiniz?

#define I2C_SDA_DDR
	
	
DDRC
#define I2C_SDA_PIN
	
	
PINC
#define I2C_SDA_NR
	
	
PC1  //ISR: PCINT17
#define I2C_SCL_PIN
	
	
PINB
#define I2C_SCL_NR
	
	
PB2  //ISR: INT2
#define BTN1_PIN
	
	
PIND
#define BTN1_NR
	
	
	
PD3  //ISR: INT1
#define BTN2_PIN
	
	
PIND
#define BTN2_NR
	
	
	
PD2  //ISR: INT0
	


#define SDA_SET
	
	
	
I2C_SDA_DDR
	
	
&= ~(1<<I2C_SDA_NR)
	
	
	
	
	

#define SDA_RESET
	
	
I2C_SDA_DDR
	
	
|= (1<<I2C_SDA_NR)
	
	
	
	
	

#define SDA_READ
	
	
((I2C_SDA_PIN
	
& (1<<I2C_SDA_NR))>>I2C_SDA_NR)
#define SDA_IS_RESET
	
(!(I2C_SDA_PIN
	
& (1<<I2C_SDA_NR)))
#define SDA_IS_SET
	
	
(I2C_SDA_PIN
	
& (1<<I2C_SDA_NR))
#define SCL_IS_RESET
	
(!(I2C_SCL_PIN
	
& (1<<I2C_SCL_NR)))
#define SCL_IS_SET
	
	
(I2C_SCL_PIN
	
& (1<<I2C_SCL_NR))
#define BTN1_IS_RESET
	
(!(BTN1_PIN
	
	
& (1<<BTN1_NR)))
#define BTN1_IS_SET
	
	
(BTN1_PIN
	
	
& (1<<BTN1_NR))
#define BTN2_IS_SET
	
	
(BTN2_PIN
	
	
& (1<<BTN2_NR))

sadogan

CCS direk I2C yi destekler.
#use I2C(Master,SDA = PIN_C4, SCL = PIN_C3,force_sw,fast=50000)
bu şekilde tanımlayın.
SDA = PIN_C4, SCL = PIN_C3 bularada istediginiz pinleri yazın.
Tanımladığınız pinlerde donanımsal I2C varsa "force_sw" yi "force_hw" yapabilirsiniz.
Sonra bu komutları kullanabilirsiniz
i2c_start()
i2c_write();
=i2c_read();
i2c_stop();

thenorthstar

Bu şekilde tanımlayıp yapmam lazım hocam,