Нет, всё равно что-то не получается.
Вот по порядку что я делаю:
1. Создаю .с и .h файлы. В первом реализации функций,
во втором - их прототипы и определения констант
2. в основной программе #include заголовочный файл -
проект не компилируется - Undefined external...
3. дописываю в основной программе внешние функции как
extern - опять Undefined external, кстати ошибку выдаёт
IAR Universal Linker V4.59F/386
4. Добавляю файл в проект: Project - Add File.
Теперь в папке /Obj лежат 2 файла: main.r43 и i2c_soft.r43,
но ошибки те же.
То есть похоже, что по-отдельности файлы компилируются в 2 объектных
модуля, но как их объединить в один файл???
На всякий случай ещё в настройках Linker - Search Path указал $OBJ_DIR$\
и $PROJ_DIR$\, то же самое в Compiler - Include Paths.
Ничего не помогает, а больше ничего придумать не могу...

Или где-то настройки проекта покрутить надо, или во внешних файлах дописать
(маловероятно - что там такого писать), или в основной программе
(extern и прототипы уже написал...)... В общем, если кто что подскажет - буду рад :!: