в семплах делай написан с ошибкой - выше какой-то частоты считает неверно. Вот другой вариант, более правильный.
По поводу своих библиотек - вначале прочитайте о строении компилятора - он состоит из 2 частей - собственно компилятора и линкера.
Компилятор из каждого си файла создает объектный файл, в котором указывается, какие функции-переменные являются импортируемые
когда (берутся из других си-файлов), какие экспортируемые - предоставляются другим файлам. Когда все объектные файлы построены,
в дело вступает линкер - он формирует из всех объектных файлов один исполняемый.
Информацию компилятор (первая часть) берет из заголовочных файлов, поэтому не тяните туда объявление всех функций-переменных,
а только тех, которые должны быть видны снаружи. Заголовочный файл должен включаться в проект только 1 раз, поэтому не забывайте
вначале включить предохранитель
#ifndef _hard_config_h_ // если этот файл не включался в проект
#define _hard_config_h_ // то ставим метку, что включен
// содержимое // работаем с ним
#endif //_hard_config_h_ конец предохранителя, сюда попадаем сразу, если он уже был включен ранее
"На пальцах" пока хватит
зы. не заметил, что разговор идет о 18 пиках.
Работать с хайтеком при наличии МСС18 - это извращение, имхо. Нет, конечно, существует переходник, позволяющий портировать хайтековский код в мсс18, но зачем ??? Если изначально можно работать с мсс18.
