我想在C中創建一個用於ATMEL 328pu的庫。我在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