Цитата(AlexandrY @ Jul 10 2016, 11:31)

И этого слишком мало!
Если описывать то всё, включая все альтернативные функции.
Тут немного искажено , поскольку включился автоматический перенос строк, но принцип понять можно.
Вы сюда локи и прерывания ещё вынесли - вполне себе... Главное, что читаемо и понятно!
Цитата
И эта таблица генерится прямо из PDF-а мануала на чип.
Вот, а это уже интересно!
Поделитесь механизмом!
Сперва подумал, какой ацкий труд проделан по написанию каментов, а потом увидел, что и это автоматизировано - респект!
Цитата(jcxz @ Jul 10 2016, 10:01)

Не понял вопрос про задание активного уровня. При инициализации пина ему задаётся некое начальное значение (если это GPIO-пин), а потом меняется драйвером по его алгоритму. Есть у меня макросы установки/сброса/... текущего состояния GPIO-пина. Описывал их выше.
Смысл H и L в макросах не только в задании начального состояния, но и в том чтобы не думать о нём вовсе.
pin_set(PIN_NAME); pin_clr(PIN_NAME); задают состояние ноги напрямую без учёта H и L,
а pin_drive(PIN_NAME, VALUE) задаёт активное/пассивное состояние c учётом активного уровня.
Поэтому в коде программы или коде драйвера я использую только pin_drive(PIN_NAME, VALUE), чтобы не думать о активном уровне. В ваших макросах явно напрашивается третий аргумент: А,12,H или B,5,L