Всё равно регистры надо будет включать ручками, так как сам по себе C не имеет к этому аж ни какого отношения.
Имеет отношение, к примеру, конкретный компилятор, так как в AVRgcc, вот, есть свои макросы для работы с битами, которые в стандарте С не описаны. А так - всё то же самое. Не зная внутрянки - и из С ни чего путного ни кто не напишет
А не рано ли при 0 подготовки браться за чужой код? Это ж уже реинжениринг - он сам по себе требует ненулевой подготовки
Напиши ка ты хэллоу ворлд, что-ли. Светодиодиком помигай. Сначала мигай по программной паузе. Как сможешь делать её изменением одной переменной или константы по своему усмотрению любого значения и, мало того - она будет в него попадать - начинай делать её на паузе по счетчику прерываний встроенного таймера. До того же результата - ты не только делаешь паузу, но и можешь её менять и точно быть уверенным, что она имеет заданное значение.
Ну и непонятна задача в общем - с библиотеками ЧЕГО именно ты хочешь разобраться? Библиотека - не более, чем файл. Это не среда программирования верхнего уровня, у тебя нет оси, нет подключаемых модулей. Ты подключаешь библиотеку точно так же, как подключаешь свой собственный свежесозданный файл. После этого - становятся доступны функции, которые там в библиотеке описаны.
Вот и вся суть библиотек.