2014-05-22 5 views
1

나는 Arduino Mega를 가지고 있으며, SD & SCL 핀을 A4 & A5에서 A14 & A15로 변경하려고합니다.LCD 핀 변경

거기에서 I2C LCD를 제어 할 수 있도록 라이브러리가 있지만 핀이 설정된 위치가 표시되지 않습니다. 그러나, 나는 내 눈을 그냥 스킵 할 수 있도록 제가 C++ 및 라이브러리에 새로운 오전 ... 그들은 어딘가에 설정해야

이미징 것 내가 2 C 핀 AVR과 하드웨어에 설정되어

답변

0

; 완전히 다른 I 버스를 사용하는 것 이외에 다른 방법을 바꿀 방법이 없습니다. MCU가 다른 어떤 것도 가지고 있다고 가정 할 때, C 버스를 사용하는 것입니다.

하드웨어에서 사용할 수있는 핀 이외의 핀을 사용하려는 경우 일반 GPIO보다 I C를 비트하는 라이브러리를 찾은 다음 해당 라이브러리를 사용하도록 LCD 라이브러리를 수정해야합니다 하드웨어 I C.

+0

Arduino 핀을 변경하고 싶다는 의미입니다. 이것은 LCD에 어떤 영향을 줍니까? – Jister13

+0

그렇지 않습니다. 하드웨어 I2C가 필요하기 때문에 LCD 라이브러리에 따라 다릅니다. –

+0

그래서 C++ 라이브러리에서 바꿀 수 없습니까? – Jister13

1

standard i2c library은 특정 핀에 연결된 전용 하드웨어를 사용합니다. 이 방법으로 바이트를 보내려면 프로그램이 바이트를 특정 레지스터에 씁니다 (단 몇 번의 클럭 사이클이 소요됩니다). 하드웨어는 SDA 핀에서 비트를 하나씩 이동하고 SCL을 토글 링합니다 자동으로 핀.

아마 당신이 찾고있는 것은 software i2c이며, 소프트웨어에서 동일한 프로토콜을 구현하며 임의의 핀을 사용할 수 있어야합니다. 이 라이브러리는 상당히 느리고 표준보다 많은 리소스를 사용합니다 : 프로그램이 바이트를 보내려고 할 때 라이브러리는 단일 비트를 추출하고, 정의한 데이터 핀을 찾아보고, 비트 값을 그 핀 핀, 클럭에 대해 정의한 핀을 찾아 내고, 그 핀을 토글하고, 조금 기다리고, 시계를 다시 토글하는 등등 모두 소프트웨어에 있습니다. 이 작업에는 많은 시간이 걸리지 만 응용 프로그램에 신경 쓰지는 않습니다.