ATMEL 328pu에서 사용하기 위해 C로 라이브러리를 만들려고합니다. C에서 소스 파일과 헤더 파일을 만들었지 만 라이브러리를 컴파일하려고 할 때 멈추게됩니다. 나는 유형을 포함하는 또 다른 AVR 라이브러리를 필요가 있다고 생각 :ATMEL328 용 c 라이브러리 생성
- TWDR
- TWCR에게 ATMEGA328의 I2C 레지스터입니다
합니다. 오류 메시지의 요약 된 버전과 오류 메시지가 참조하는 .cpp 파일의 일부가 아래에 나와 있습니다.
오류 메시지 :
Build: Debug in my_i2c (compiler: GNU GCC Compiler) Code_blocks/my_i2c/my_i2c/my_i2c.cpp|39|error: use of undeclared identifier 'TWCR'| Build failed: 19 error(s), 0 warning(s) (0 minute(s), 0 second(s))
추출 from.cpp 파일 :
#include "my_i2c.h"
/////////////////////WRITE BIT////////////////////
void my_i2c :: i2cWriteBit (uint8_t i2cAdd, uint8_t i2cReg, uint8_t i2cBit, bool i2cBool) {
uint8_t writeBuff;
writeBuff = i2cRead(i2cAdd, i2cReg); //read uint8_t
i2cBool == true ? writeBuff |= 1 << i2cBit : writeBuff &= ~(1 << i2cBit);
i2cWrite (i2cAdd, i2cReg, writeBuff);
}
/////////////////////WRITE uint8_t////////////////////
void my_i2c :: i2cWrite (uint8_t i2cAdd, uint8_t i2cReg, uint8_t i2cData) {
/////START CONDITION////
TWCR = 0b10100100; //(TWINT)(TWSTA)(TWEN) - Set START condition
while (!(TWCR & 0b10000000)) { //Wait for TWI to set TWINT
}
나는 무엇 TWCR 및 TWDR 컴파일러의 기능을 이해하는 정의해야합니까? 그리고 어떻게하면 좋을까요? 제가 다른 도서관을 포함 시켜서 생각한 것입니까?
컴파일러 명령을 게시해야합니다. – LPs
그게 뭔지 모르겠다 – hoboBob