Блин! Зачем main.cpp назвали, да еще и в опциях язык Automatic (Extention based) выбрали? У вас же нет плюсового ничего. В общем, изменив одну лишь опцию в свойствах проекта, все начинает компилироваться
Options->C/C++ Compiler->Language->Embedded C++.
Либо можете оставить так как сейчас есть, но в исходнике соответствующую прагму с указанием языка используйте.
Кстати, хидеры отдельно в проект включать не нужно.
P.S. еще один вариант, когда с хидерами/модулями не получается. Инклюдить в модуль с функцией main не только хидер, а весь исходник модуля. То бишь во второй строке вместо
Код
#include "i2c_soft.h"
напишите
Код
#include "i2c_soft.c"
P.P.S. для подобных проектов я библиотеку Legacy C (CLIB) использую. Плюсового у вас тут ничего пока не наблюдается. А из библотеки DLIB, только определения
true и
false используются. Но их легко самому определить. Типа такого
Код
typedef unsigned char Bool;
#define false ((Bool)0x00)
#define true ((Bool)0xFF)
ну или сами тип придумайте или подсмотрите где.