Посмотрел я Ваш исходник...
От ардуино там только компиляция.
Автор исходника по максимуму прошелся по аппаратным модулям, причем зацепил и те, что обычно системой используются.
Это скорее просто СИ для АВРок под ардуино IDE, причем с заявкой на максимальную оптимизацию под минимальный размер кода (и с нулевыми комментариями).
Доработать такое разве что автор того проекта быстро и качественно сможет сделать.
Компилируется данный исходник и под атмегу2560 - выбираем в вкладке
инструменты -> ArduinoAVRboards -> arduino Mega or mega 2560
затем в строке выбора МК платформы выставляем соответственно
Atmega(mega 2560)...
А вот будет ли работать программка в конечном устройстве - это уже на везенье вопрос.
Ну и нумерация выводов ардуино не всегда соответствует таковой для портов АВРок.
Сравните:
раскладка нанки и раскладка меги (платка чуток иная, но соответствие выводов то же самое) К примеру тот же ардуиновский D5
для нанки это будет PD5 - порт D
а для меги уже PE3 - порт E
вот это расхождение и надо учитывать при подключении выводов. Программа то работает именно с портами АВР МК, а не с нумерацией ардуино нано (или ардуино меги)!